연습을위한 체스 게임 응용 프로그램을 만들고 모든 기능을 마쳤습니다. 2 플레이어 모드를 활성화 할 수 있도록 루프를 통해 소켓에서 데이터를 읽을 때 "java.io.EOFException"받기
지금 내 서버 코드에서 내가 계속 회전에 의해 두 선수 차례에서 데이터를 얻을 수있는 루프를 사용하고 ... 네트워킹 부분을 구현하기 위해 노력하고 있습니다.각 플레이어의 첫 번째 턴에서 서버가 정상적으로 작동하고 데이터가 다른 플레이어에게 올바르게 전송되었음을 확인했습니다. 그것은 다시 루프의 int[] data1 = (int[]) in1.readUnshared();
이 첫 선을 간다 때
java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
오류가 발생 ... 여기
while(true){
int[] data1 = (int[]) in1.readUnshared(); // THIS PART!!
if(data1.length != 96)
break;
out2.writeUnshared(data1);
out2.flush();
int[] data2 = (int[]) in2.readUnshared();
if(data1.length != 96)
break;
out1.writeUnshared(data2);
out1.flush();
}
"에서"와 "밖으로"변수는 클래스 변수 I는
static ObjectInputStream in1;
static ObjectInputStream in2;
static ObjectOutputStream out1;
static ObjectOutputStream out2;
를 선언하고이 같은 주요 기능에 그들을 initilized :
in1 = new ObjectInputStream(player1.getInputStream());
스트림을 초기화하는 방법에 문제가 있습니까? 꽤 오래 동안이 문제에 붙어 있었고 ... 내 응용 프로그램이 작동하는지 필사적으로 보았습니다.
왜 변수가 정적입니까? – EJP