Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java IPC:为每个请求连接还是保持插座打开?_Java_C++_Sockets_Ipc - Fatal编程技术网

Java IPC:为每个请求连接还是保持插座打开?

Java IPC:为每个请求连接还是保持插座打开?,java,c++,sockets,ipc,Java,C++,Sockets,Ipc,我计划使用套接字(本地TCP)在两个进程(本地运行)之间进行通信。一个进程将充当服务器,但两个进程异步地相互发送消息。我应该在进程的生命周期内保持套接字连接打开,还是为每个请求重新连接 如果保持本地套接字打开,是否会出现任何问题?保持套接字打开。 这是一个更简单的选择,并且您不会因为打开一个新套接字(从客户端的角度)或接受一个新客户端(从服务器的角度)而产生额外的开销。如果它只是一个客户端,那么您应该保持套接字打开,但在出现错误时准备重新连接(例如,用户可以重置网络接口,因此连接不保证处于活动状

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


如果保持本地套接字打开,是否会出现任何问题?

保持套接字打开。


这是一个更简单的选择,并且您不会因为打开一个新套接字(从客户端的角度)或接受一个新客户端(从服务器的角度)而产生额外的开销。

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

套接字类型?我猜是tcp/ip。是的。这是一个本地tcp套接字[编辑的问题]+1.需要注意的一点是在协议中加入消息长度……或者使用其他协议,允许通过TCP等流式服务发送“消息”。我同意“保持套接字打开”——在消息通信之前进行三次握手,然后进行四次终止握手,这是减缓应用程序速度的一种好方法p、 如果在具有高延迟网络连接的不同机器上,@Nikolai N Fetissov-我建议使用TCP消息的典型方法:用新行(CR和/或LF)分隔的人类可读消息。[我不确定这是否适用于此问题,因为我不知道他试图传达的是什么]。