2013-02-08 2 views
0
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을 던집니다. 왜 그걸 바로 위에 초기화하고 있기 때문에 나는 왜 몰라.자바에서 소켓을 사용하는 객체 전송

+0

정확한 용어를 입력하십시오. '실시간'은 컴퓨팅 분야에서 특별한 의미를 지니고 있습니다. '현실 세계'같은 것을 의미합니까? 아니면 '적시'? – EJP

답변

0

하나의 연결을 열어서 전체 게임을 계속 열려고합니다.

+0

그게 내가하려는 일이야. 내가 게시 한 코드는 연결을 유지하면서 모든 루프를 수행해야한다고 생각한 것입니다. 그러나 그것은 약간의 오류를 던졌습니다. – user2054739

+0

@ user2054739 - 나는 어떤 오류를 추측해야합니까? 힌트, 도움을 청할 때 대답이 무엇이라고 생각하는지 시작하지 말고 _actual_ 문제로 시작하고 관련 세부 정보를 포함하십시오. – jtahlborn

+0

@ user2054739 - 포함 된 작은 코드를 기반으로 야생을 추측하면 'in.reset()'이 문제를 일으키고 있습니다. 그 방법에 대해 javadoc을 읽는 것이 좋을 것이라고 생각합니다. – jtahlborn