使用java中的套接字进行对象转移

使用java中的套接字进行对象转移

问题描述:

if(server&&network){ 
    try{ 
     serverSocket = new ServerSocket(12345); 
     socket = serverSocket.accept(); 
     System.out.println("Connected to " + socket.getInetAddress().getHostName()); 
     out = new ObjectOutputStream(socket.getOutputStream()); 
     in = new ObjectInputStream(socket.getInputStream()); 
     out.writeObject(lou); 
     out.flush(); 
     out.reset(); 
     out.writeObject(dud); 
     out.flush(); 
     out.reset(); 
     me = new Gen(lou, dud); 
     //socket.close(); 
     //serverSocket.close(); 
    }catch(IOException ioException){ 
     ioException.printStackTrace(); 
    } 
    }else if(network&&!server){ 
     try{ 
      //Socket socket = new Socket("10.69.18.244", 12345); 
      socket = new Socket("192.168.1.100", 12345); 
      //Socket socket = new Socket("10.69.18.162", 12345); 
      out = new ObjectOutputStream(socket.getOutputStream()); 
      in = new ObjectInputStream(socket.getInputStream()); 
      lou = (ArrayList)in.readObject(); 
      //in.reset(); 
      dud = (ArrayList)in.readObject(); 
      //in.reset(); 
      me = new Gen(dud, lou); 
      //socket.close(); 
     }catch(Exception ioException){ 
      ioException.printStackTrace(); 
     } 
    } 

当我尝试在服务器上使用out.writeobject(lou)时,出现NullPointerException。客户端抛出一个NotSerializableException。我不知道为什么,因为我正在初始化它。使用java中的套接字进行对象转移

+0

请正确使用术语。 “实时”在计算中具有特定的含义,这不是它。你的意思是“真实世界”吗?或'及时'? – EJP 2013-02-08 20:37:04

你想打开一个连接并保持整个游戏的开放。

+0

这就是我想要做的。我发布的代码是我认为我必须做的每一个循环,保持连接打开。但它抛出了一些错误 – user2054739 2013-02-08 19:32:11

+0

@ user2054739 - 我应该猜测哪些错误?暗示,当试图获得帮助时,不要从你认为的答案开始,从_actual_问题开始,并包括所有相关细节。 – jtahlborn 2013-02-08 19:43:04

+0

@ user2054739 - 根据你包含的一小段代码做一个疯狂的猜测,'in.reset()'会导致问题。我建议阅读关于该方法的javadoc,因为它不会执行您认为正在执行的操作。 – jtahlborn 2013-02-08 19:45:13