使用 Java 平台开发 C++ 服务器。堆栈一些小问题。希望任何人都可以在这里提供帮助
C++ 服务器代码片段
// Sample send a socket
sned(ConnectedSocket, classroomlist, strlen(classromlist), 0);
在 Java 客户端中
// Catch the socket
InputStreamReader isr = new InputStreamReader(socket.getInputStream());
char[] buffer = new char[3];
问题来了
如果我使用 BufferedReader,什么都没有读出。
我尝试使用
while((x = inr.read(buffer)) != -1){}
, 在读取时堆栈到 while 循环中。(了解为什么 BufferedReader 没有输出)
我试着
while(true){ SYstem.out.println(inr.read(buffer)) }
打印出每一轮阅读的所有长度。发现问题!像这样输出 vvvvvvvvvvv05-31 11:35:09.934: D/@@@(3264): 3 05-31 11:35:09.934: D/@@@(3264): 3 05-31 11:35:09.934: D/@ @@(3264): 3 05-31 11:35:09.934: D/@@@(3264): 2
InputStremaReader.read()
假设return -1
如果 tcp 包到达末尾。但是该函数只是在结束之前堆栈并等待等待等待gggggg。