자바 소켓 프로그래밍을 배우려고하는데 InputStream의 읽기 기능에 문제가 있습니다. 처음에는 서버에 연결하기위한 소켓을 만들었습니다. 연결이 설정된 후 서버는 "연결이 설정되었습니다"라는 메시지를 다시 보내고 읽기 기능이 정상적으로 작동합니다. 그런 다음 서버에 바이트 메시지를 보내려고했지만 "in.read (buf)"행에 프로그램이 멈췄으므로 InputStream에서 데이터를 읽을 수 없습니다. 누구든지 나를이 문제를 어떻게 해결할 수 있는지 알려줄 수 있습니까?InputStream에서 데이터를 읽을 수 없습니다.
Socket client = new Socket("xxx.xxx.xxx.xxx", 45000);
InputStream in = client.getInputStream();
OutputStream out = client.getOutputStream();
for (int i = 0; i < 5; i++) {
byte[] buf = new byte[1024];
int data_size = in.read(buf);
String msg = "";
for (int j = 0; j < data_size; j++) {
msg += String.valueOf((char) buf[i]);
}
System.out.println(msg);
out.write(65);
out.flush();
}
읽기가 멈추는 가장 일반적인 이유는 데이터를 보내지 못했기 때문입니다. 당신의 글쓰기 코드를 보여줄 수 있습니까? 적어도 5KB의 데이터가 전송되었음을 알고 있습니까? –
http://www.javaworld.com/jw-12-1996/jw-12-sockets.html?page=3 – ajc