【发布时间】:2011-05-30 13:20:32
【问题描述】:
我打算使用套接字(本地 TCP)在两个进程(本地运行)之间进行通信。一个进程将充当服务器,但两个进程异步发送消息给对方。我应该在进程的生命周期内保持套接字连接打开,还是为每个请求重新连接?
如果我保持本地套接字打开,是否会出现任何问题?
【问题讨论】:
-
套接字类型?我猜是 tcp/ip。
-
是的。这是一个本地 TCP 套接字 [已编辑问题]
我打算使用套接字(本地 TCP)在两个进程(本地运行)之间进行通信。一个进程将充当服务器,但两个进程异步发送消息给对方。我应该在进程的生命周期内保持套接字连接打开,还是为每个请求重新连接?
如果我保持本地套接字打开,是否会出现任何问题?
【问题讨论】:
保持套接字打开。
这是一个更简单的选项,并且您不会产生打开新套接字(从客户端的角度来看)或接受新的客户端(从服务器的角度来看)的开销。
【讨论】:
如果它只是一个客户端,那么您应该保持套接字打开,但准备好在出现错误时重新连接(例如,用户可以重置网络接口,因此不能保证连接是活动的)。如果您有很多客户端,请在一定时间不活动超时后使用断开连接。这将让您摆脱不活动、挂起或“丢失”(那些已经去世但没有关于套接字关闭的信号)客户端。
【讨论】: