자바 소켓 프로그램에서 멈춰 버리네요...

ultra8146의 이미지

안녕하세요

갑자기 소켓 프로그램을 할일이 있어서 오랜만에 서버/클라이언트를 만드는데

데이타는 전송이 되고 받는거 까지 되는데
while 에서 멈춰 버리네요

도와주세요

--------서버-------
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
ServerSocket servSock = new ServerSocket(8000);

int recvMsgSize = 0;
byte[] byteBuffer = new byte[BUFSIZE];

for(;;) {
Socket clntSock = servSock.accept();

System.out.println("Handling client at " + clntSock.getInetAddress().getHostAddress() + " on port " + clntSock.getPort());

InputStream in = clntSock.getInputStream();
OutputStream out = clntSock.getOutputStream();

while((recvMsgSize = in.read(byteBuffer)) != -1) {
out.write(byteBuffer, 0, recvMsgSize);
}
System.out.println("Echo Server Receive Msg: " + new String(byteBuffer));

clntSock.close();
}
}

------클라이언트---------
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
try {
Socket socket = new Socket("127.0.0.1", 8000);
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();

String send = "tese";
byte[] byteBuffer = send.getBytes();

System.out.println("Send Message: " + send);

out.write(byteBuffer);

int totalBytesRcvd = 0;
int bytesRcvd;

ByteArrayOutputStream baos = new ByteArrayOutputStream();

/*
while(totalBytesRcvd < byteBuffer.length) {
if((bytesRcvd = in.read(byteBuffer, totalBytesRcvd, byteBuffer.length - totalBytesRcvd)) == -1)
throw new SocketException("Connection close prematurely");
totalBytesRcvd += bytesRcvd;
baos.write(byteBuffer);
}
*/
while((bytesRcvd = in.read()) != -1) {
baos.write(bytesRcvd);
}

System.out.println("Receive Message: " + baos.toString());

socket.close();
} catch(Exception e) {
e.printStackTrace();
}
}