相关疑难解决方法(0)

Java套接字/序列化,对象不会更新

我正在编写一个基于套接字的程序.我使用类ModelEvent通过套接字传递信息.在ModelEvent中,有一个类型(Object)的变量对象.

对象本身是具有一些值的2D数组.

object[1][2] = 2;
ModelEvent event = new ModelEvent("allo", object);
dispatchEvent(event);

object[2][3] = 2;
ModelEvent event2 = new ModelEvent("you", object);
dispatchEvent(event2);
Run Code Online (Sandbox Code Playgroud)

假设数组对象填充了值1.客户端收到第一个事件(事件),数据是正确的.通过数据发送的第二个事件是不对的.其数据与第一次发送时的数据相同."allo"和"you"是为了看我是不是两次读同一个事件而答案不是.字符串是正确的,但对象不是,如果已更新,则为event.我在发送第二个事件之前迭代数组,以查看它是否在服务器端更新,它是.但在客户端,它仍然与第一次发送时相同,即使事件本身已更改.

java sockets serialization

13
推荐指数
1
解决办法
5111
查看次数

Java 序列化。字段更改值

我有以下问题。我可以将事务状态设置为“开始、结束或正在进行”。我设置了这个,然后将我的 Transaction 对象序列化到服务器,后者检索它。第一次(当事务处于启动模式时)像魅力一样工作,但是当我重新发送对象时,这次在“正在进行”模式下,服务器继续在“启动”模式下看到它。我已经在序列化之前的行和反序列化之后的行中测试了代码,这绝对是问题所在。任何帮助将不胜感激。相关代码片段如下:

连载

        if ((query instanceof Transaction) && !(trx.getTransactionState()==Consts.trx_start)) System.out.println("Not start");
        oos.writeObject(query);
        oos.flush();
Run Code Online (Sandbox Code Playgroud)

反序列化

    while (true) {
                Object statement = null;

                try {

                    statement = ois.readObject();
                    if ((statement instanceof Transaction) && !(((Transaction) statement).getTransactionState()==Consts.trx_start)) System.out.println("Not start 2");
                    handle_statement(statement, socket);
                } catch (IOException e) {
Run Code Online (Sandbox Code Playgroud)

和交易类:

    public class Transaction extends Statement{

/**
 * 
 */
private static final long serialVersionUID = -2284996855537430822L;
Statement statement_list;
int trx_state; 


/**
 * 
 */
public Transaction() {
    trx_state = Consts.trx_start;; 
}

/**
 * @param statement
 */
public …
Run Code Online (Sandbox Code Playgroud)

java serialization client-server objectoutputstream serializable

3
推荐指数
1
解决办法
1359
查看次数