我整天都在处理一个问题,我用很多不同的方式搜索了它,但我找不到解决方案,所以我的客人是时候问:
我试图编写两个应用程序代码:客户端和使用套接字的java服务器以及除了一件事之外的所有东西都可以正常工作:客户端不会收到所有消息但只接收对应的消息。
我正在做的是循环2D数组以发送每个" x"定时从服务器到客户端的消息,但是例如,如果循环发送8条消息,则客户端仅接收消息2,4,6和8。
我在服务器端控制台上打印输出,只是为了确认数组已填充属性,服务器显示所有消息但不显示客户端。
我正在使用这个:
for (int i = 0; i < info.length; i++) {
if (info[i] != null && info[1].getState() == NetworkInfo.State.CONNECTED) {
Toast.makeText(getApplication(),"connected",Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(getApplication(),"not connected :(",Toast.LENGTH_SHORT).show();
}
}
答案 0 :(得分:1)
问题在于您阅读input
以便与"finish"
进行比较,然后您阅读了一个您从未比较过的全新字符串。
相反,您应该在条件的input
分支中打印else
,即
while (true) {
String input = in.readUTF();
if (input.equals("finish")) {
System.out.println("Server has closed the connection\nGoodBye!");
System.exit(0);
} else {
System.out.println("Server says " + input);
// ^^^^^
}
}