套接字对象的生命周期

时间:2012-04-20 07:45:26

标签: c# sockets tcp lifecycle

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

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

  1. 在每个命令发送/接收会话上初始化Socket对象 然后关闭它。
  2. 或者初始化一个全局Socket对象,使用它来发送所有对象 命令/接收响应并关闭程序关闭。
  3. 所以问题是我应该多久关闭套接字对象进行“相同”操作?

1 个答案:

答案 0 :(得分:2)

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