보내기가 작동하지만 서버 측에서 데이터 입력 스트림으로 전송 된 객체를받지 못합니다. 클래스는 직렬화되어 전송할 때 작동하지만 서버에서 왜 수신되지 않는지 잘 모르겠습니다. 모든 while
루프와 try
에Java의 소켓 서버에서 objectOutputStream을 통해 전송 된 객체를 읽는 방법
Server.ois = new ObjectInputStream(client.getInputStream());
while(Server.ois.available() != 0) {
try {
TriangleSend ts = (TriangleSend)Server.ois.readObject();
send(ts);
Server.ois.close();
} catch (Exception e) {
continue;
}
}
:
여기 내 코드입니다. 또한 수신시 예외를 생성합니다.
는센드는 (TriangleSend
) 방법은 다음과 같습니다
public static void send(TriangleSend coords) {
for (Socket client : Server.clients) {
try {
if (client != null) {
try {
ObjectOutputStream oos = new ObjectOutputStream(client.getOutputStream());
oos.writeObject(coords);
oos.flush();
} catch (Exception e) {}
}
} catch (NullPointerException e) {
continue;
}
}
}
편집 : 소스 코드 예외 : http://pastebin.com/rYzqduer
을 heres 예외 :
java.io.StreamCorruptedException: invalid stream header: 73720027
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:804)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:299)
at com.gopro2027.lwjgl.server.ServerThread$1$1.run(ServerThread.java:88)
at java.lang.Thread.run(Thread.java:745)
Could not send data Timeout: 0
"수신 된 경우에도 예외가 발생합니다. 예외가 throw 될 때마다 –
스택 추적을 게시하십시오. 이제 [StreamCorruptedException : 잘못된 유형 코드 AC] (http : // stackoverflow. com/questions/2393179/streamcorruptedexception-invalid-type-code-ac/2395269 # 2395269). – EJP
덕분에 ejp가 해결되었습니다 –