소켓 연결시 데이터가 제대로 전달이 안돼요..
하예
서버와 클라이언트는 서로 연결이 됐는데
두 컴퓨터 사이에 데이터 전송이 제대로 이루어 지지 않습니다.
특히 클라이언트 쪽에서 서버로의 전송으로는 잘돼는데
서버에서 클라이언트 전송이 잘안돼요
서버측의 스레드 부분을 간단히 소개하면요
public ClientHandler(Socket client){
try{
sock = client;
reader = new DataInputStream(new BufferedInputStream(sock.getInputStream()));
writer = new DataOutputStream(new BufferedOutputStream(sock.getOutputStream()));
}catch(Exception ex){ex.printStackTrace();}
}
public void run(){
String message;
try{
int a;
a = (reader.readInt());
if (1 ==(int)a){
writer.writeInt(2); //여기서 클라이언트에게 데이터를 보냅니다.
writer.flush();
}
}catch(Exception ex){ex.printStackTrace();}
}
클라이언트측의 스레드 부분입니다.
public class IncomingReader implements Runnable{
public void run(){
String message;
try{
int a;
a = (reader.readInt()); //이부분에서 에러가 납니다.
if ((int)a == 2){
}
}catch(Exception ex){ex.printStackTrace();}
}
}
-에러메세지-
at java.io.DataInputStream.readInt(Unknown Source)
at CClient$IncomingReader.run(CClient.java:70)
at java.lang.Thread.run(Unknown Source)
클라이언트 측에서 처음에 서버로 데이터 전송시
writer.writeInt(1);
writer.flush();
다음과 같이 써주었습니다.
서버측에서 클라이언트 측으로 보내는 소스와 별반 다를게 없는데
왜 저런 에러를 유발하나요??
자바를 손댄지 몇일 되지 않아서..
너무 부족한게 많습니다...
지금 새벽 4시가 넘도록 해결이 되질 않는데 고수님들의 조언을 구하고자 이렇게 또 글을 올립니다.
-
스킬
올려주신 소스부에서는 해당부분을 찾기 힘들겠습니다.