可能重复:
Should I close a socket (TCPIP) after every transaction?
让我们说我有一些使用套接字工作的进程间通信。
我的进程是否应该建立连接并保持打开(每个客户端或类似的1个线程)在需要时发送数据;或者是一种更好的方法来简单地建立连接,发送我想要的数据,关闭它并再次进入我的等待状态?
解决这个问题的方法通常是什么?
答案 0 :(得分:6)
我问了同样的问题,所有三个回复都说是开放的。我接受了,似乎对我有用。
答案 1 :(得分:3)
本地套接字没有太多开销,因为它们跳过TCP / IP堆栈并使用命名管道实现。保持套接字打开和关闭不会产生太大的影响。
答案 2 :(得分:2)
任何资源,无论是文件,套接字,数据库连接还是硬件设备,都需要时间并使用处理器和内存来打开,因为它必须获取资源,计算安全访问权限并进行一些簿记。
每条消息之间的打开和关闭只会浪费CPU和内存资源。
长时间保持打开也很危险但是你必须保持打开并确定最佳超时值,以便在任何一端死亡时自动关闭它。