【发布时间】:2016-04-18 18:51:06
【问题描述】:
我有一个用 C# 为 Windows 编写的服务器应用程序。我有一个适用于 android 的客户端应用程序。我想在无限循环中从客户端连续发送数据到服务器。正在发送数据,但有时会出现严重延迟。我真的很坚持。这是我的客户端代码:
new Thread(new Runnable() {
public void run() {
Socket socket = null;
PrintWriter out = null;
while(true) {
try {
socket = new Socket(IP, PORT);
out = new PrintWriter(socket.getOutputStream(), true);
out.println(msg);
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}).start();
知道为什么会有延迟吗?
【问题讨论】:
-
延迟有多严重?服务器在哪里?可能是您的网络或互联网路由。
-
有时沟通顺畅。有时,消息会在最多 5 秒的延迟后收到。如果你说,我也会附上服务器端代码。
-
我不一定想查看服务器代码,只需向我们提供有关您的服务器所在位置的信息。它是否插入到您正在开发的同一网络中?是在工作,是在另一个国家吗?
-
它在同一个网络中。服务器在我的电脑里,客户端在我的安卓手机里。两者都在同一个网络上。
-
首先我建议您像 Knossos 所说的那样重构您的代码。然后将
Thread.sleep(1);放到while循环中,看看是否还有延迟。