IPC:为每个请求连接或保持套接字打开?

时间:2011-05-30 13:20:33

标签: java c++ sockets ipc

我打算使用套接字(本地TCP)在两个进程(本地运行)之间进行通信。一个进程将充当服务器,但两个进程都异步地相互发送消息。我应该在进程的生命周期内保持套接字连接打开,还是为每个请求重新连接?

如果我打开本地套接字,可能会出现任何问题吗?

2 个答案:

答案 0 :(得分:5)

保持套接字打开。

它是一个更简单的选项,您不会因为打开一个新套接字(从客户端的角度来看)或接受一个新客户端(从服务器的角度来看)而产生开销。

答案 1 :(得分:1)

如果它只是一个客户端,那么你应该保持套接字打开,但是如果出现错误就可以重新连接(例如,用户可能已经重置了网络接口,因此无法确保连接存在)。如果您有许多客户端,请在一定时间的非活动超时后使用断开连接。这将让你摆脱不活动,挂起或“丢失”(那些已经过世但没有关于套接字关闭的信号)客户端。