我目前正在将 API 从 C# 转换为具有网络组件的 Java。
C# 版本似乎在使用其类期间保持输入和输出流以及套接字打开。
它是否正确?
记住应用程序根据用户输入发送命令和接收事件,为每个“消息”打开一个新的套接字流是否更明智?
我正在维护一个 ServerSocket 来监听服务器抛出的事件,但我不太确定为出站通信维护一个 Socket 和输出流是个好主意。
我不太习惯 Socket 编程。与许多开发人员一样,当我需要进行网络工作时,我通常在应用程序层工作,而不是在套接字层工作,自从我在大学做这些事情以来已经有五六年了。
为帮助干杯。我想这更多的是寻求建议而不是确定的答案。
保持连接开放的成本和创建这些连接的成本之间存在权衡。
建立联系花费时间和带宽。你必须进行 3 路 TCP 握手,启动一个新的服务器线程,...
保持连接开放主要成本是内存和连接。网络连接是受操作系统限制的资源。如果连接的客户端太多,则可能会耗尽可用连接。它将消耗内存,因为您将为每个连接打开一个线程及其相关状态。
根据您期望的用途,正确的平衡会有所不同。如果您有很多客户端在短时间内连接,则关闭连接可能会更有效。如果长时间连接的客户端很少,您可能应该保持连接打开......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)