2012-02-18 5 views
1

왜 갑자기 TCP 소켓을 통해 목록을 보내고 받는지 문제가 있음을 알지 못합니다. 처음에는 성공적이었습니다. 여기 내 전송 코드는 다음과 같습니다 보낸 사람 :List <> Object를 소켓을 통해 전송할 때의 문제

List<String> A = ....; 
ObjectOutputStream out = new ObjectOutputStream(soc.getOutputStream()); 
System.out.println("Wrinting the answers"); 
out.writeObject(A); 
System.out.println("Wrote the answers, now reading the flag"); 

내가 제대로 SOP를 얻고, 그러나 리시버가 대기 상태로 전환 : 여기

ObjectInputStream in = new ObjectInputStream(soc.getInputStream());    
ls = (List<String>)in.readObject(); 
System.out.println("Recieved the list of results"); 

내가 SOP를 받고 있지 않다 수신기는 계속 대기 상태에있다. 추가 : 이전에 목록을 이전하는 데 성공했지만 그 다음에는 몇 가지 변경 사항을 적용하여 현재 문제가 무엇인지 알지 못합니다. 실제로 다른리스트 <도 전송하려고 합니다만, 첫 번째 문제에 대한 해결책을 얻을 때만 시도해 볼 것입니다! 귀하의 답변을 주셔서 감사합니다 ..

+1

시도 유형을 객체와 * 객체 *입니다 – Prabhavith

+2

목록을 보내 목록 개체를 변환 할 수 있습니다. 변환 할 것이 없습니다. –

+1

작성한 데이터가 버퍼링되기 때문에 SOP가 정상적으로 작동합니다. 객체 작성이 끝나면'out.flush()'를 호출해야합니다. – SuperSaiyan

답변

2

이 시도 :

ObjectOutputStream out = new ObjectOutputStream(soc.getOutputStream()); 
System.out.println("Wrinting the answers"); 
out.writeObject(A); 
out.flush(); // flush the stream! 
System.out.println("Wrote the answers, now reading the flag"); 
+0

나는 플러시를 시도했지만, 여전히 나는 같은 결과를 얻지 못하고있다. – Purushottam

관련 문제