【发布时间】:2016-04-16 21:08:04
【问题描述】:
我在 PC 上有一个客户端 android 应用程序和一个服务器程序。在客户端应用程序中,我在 Activity 的 onCreate() 中启动了一个新线程。在该线程中,有一个无限循环将消息发送到服务器。但有时会有长达 5 秒的延迟。这是客户端的代码:
编辑
new Thread(new Runnable() {
public void run() {
Socket socket = null;
PrintWriter out = null;
try {
socket = new Socket(ip, 1755);
out = new PrintWriter(socket.getOutputStream(), true);
} catch (IOException e) {
e.printStackTrace();
}
while(true) {
if(socket != null) {
out.println(msg);
}
}
}
}).start();
现在消息没有被传递。
【问题讨论】:
-
你真的想在循环中创建套接字吗?为什么不创建一次然后循环发送然后关闭它?
-
你检查我的答案了吗?
-
@Krish 是的,我刚刚检查了你的答案。现在我想在用户触摸屏幕时发送消息。所以,我只需在 onTouchEvent() 中调用 sendMessage() 吗?
-
是的,您可以在 onTouch() 中发送消息。但尽量减少消息数。
-
@Krish 我在我的 Java 项目中使用了你的代码。如果我必须发送一条消息,它工作正常。但是当我在无限循环中尝试 sendMessage 时,只发送第一条消息。我犯了什么错误?
标签: android multithreading sockets