我正在嘗試學習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