我正在尝试学习java套接字编程,但是我在InputStream的读取功能方面遇到了问题。 首先,我创建了一个连接到服务器的套接字。建立连接后,服务器将发回“连接已建立”的消息,并且读取功能正常工作。然后我尝试向服务器发送字节消息,但是我无法从InputStream读取数据,因为我的程序停留在“in.read(buf)”行。任何人都可以指出我如何解决这个问题。无法从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();
}
卡住读取的最常见原因是无法发送任何数据。你能告诉我们你的写作代码吗?你确定知道至少有5 KB的数据发送? –
http://www.javaworld.com/jw-12-1996/jw-12-sockets.html?page=3 – ajc