1

我正在使用Socket对象通过 tcp 向其他程序发送命令。

我想知道什么是更好的决定:

  1. 在每个命令发送/接收会话上初始化Socket对象,然后关闭它。
  2. 或者要初始化一个全局Socket对象,使用它来发送所有命令/接收响应并在程序关闭时关闭。

所以问题是我应该多久关闭一次“相同”操作的套接字对象?

4

1 回答 1

2

这取决于您的应用程序要求。例如,假设您正在编写一个 smtp 客户端,那么服务器将永远不允许您连接,这也是请求/响应类型的协议(例如,您发送请求以检查任何邮件并接收它的响应)然后您必须关闭您的套接字一旦您的请求完成。但是如果您正在编写一些类似聊天的应用程序,那么您可能不想关闭您的套接字。因为聊天应用服务器可以随时向您发送服务器收到的其他聊天消息,所以在这种情况下,服务器也会在没有您请求的情况下推送您的数据。

于 2012-04-20T09:55:25.213 回答