我正在做简单的Java客户端服务器。这是我的客户代码。inputStream数据丢失
try {
socket = new Socket(serverIP, serverport);
dataStream = new DataOutputStream(new BufferedOutputStream(
socket.getOutputStream()));
long[] data = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
for (int i = 0; i < data.length; i++) {
dataStream.writeLong(data[i]);
System.out.println("So far" + dataStream.size());
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (socket != null)
try {
dataStream.flush();
socket.close();
dataStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
这可以正常工作,因为我可以看到一堆字节已经写入服务器。这里是服务器代码。
try {
ServerSocket newSocket = new ServerSocket(2503);
while (true) {
connectionSocket = newSocket.accept();
input = new DataInputStream(new BufferedInputStream(connectionSocket.getInputStream()));
System.out.println(input.readLong());
}
然而,没有数据被成功地从服务器套接字读出,connectionSocket.getInputStream.available()返回0字节。让我们假设每个变量都被正确地声明。任何想法为什么?感谢帮助。
尝试添加环; (int i = 0; i <9; i ++)System.out.println(input.readLong());' – 2012-02-25 04:21:40