我想用我的应用程序输入我的服务器的 url,例如 http://192.168.1.8/
和端口,例如 1234
。当我的服务器收到 TCP 请求消息时,它会发回一个文件(服务器已经实现)。
我认为我不需要像 AsyncTask 这样复杂的东西,因为我不想保持连接。从服务器接收到答案,我的连接必须关闭。
任何有关前进方向或提示的指示都将受到高度赞赏。
原文由 G.V. 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想用我的应用程序输入我的服务器的 url,例如 http://192.168.1.8/
和端口,例如 1234
。当我的服务器收到 TCP 请求消息时,它会发回一个文件(服务器已经实现)。
我认为我不需要像 AsyncTask 这样复杂的东西,因为我不想保持连接。从服务器接收到答案,我的连接必须关闭。
任何有关前进方向或提示的指示都将受到高度赞赏。
原文由 G.V. 发布,翻译遵循 CC BY-SA 4.0 许可协议
最终的部署环境是什么?您的代码指向本地 IP。当您将其部署到真实的服务器环境时,情况可能会发生变化?如果您在托管服务器中启动此代码,请注意 NAT 问题。然后您将无法获取数据包。考虑使用更复杂的协议(例如,Socket.io 可以提供帮助)
原文由 Rami Khawaly 发布,翻译遵循 CC BY-SA 4.0 许可协议
7 回答3.2k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
2 回答2.7k 阅读
2 回答1.8k 阅读
1 回答2.1k 阅读
1 回答1.2k 阅读
1 回答1.3k 阅读
这是一个简单的 TCP 客户端,它使用了我根据本教程中的代码开始工作的套接字( 本教程 的代码也可以 在这个 GitHub 存储库中 找到)。
请注意,此代码适用于在客户端和服务器之间来回发送字符串,通常采用 JSON 格式。
下面是 TCP 客户端代码:
然后,在 Activity 中声明一个 TcpClient 作为成员变量:
然后,使用 AsyncTask 连接到您的服务器并在 UI 线程上接收响应(请注意,从服务器接收到的消息在 AsyncTask 中的
onProgressUpdate()
方法覆盖中处理):要开始连接到您的服务器,请执行 AsyncTask:
然后,向服务器发送消息:
您可以随时关闭与服务器的连接: