Network programming 终止进程后是否应手动关闭TCP连接?

Network programming 终止进程后是否应手动关闭TCP连接?,network-programming,posix,Network Programming,Posix,假设我编写了一个程序,程序在启动后创建了tcp,我的问题是,我是否应该在关闭程序之前编写代码来关闭tcp连接。或者,操作系统可以自动关闭属于终止程序的tcp连接?,而操作系统最终将关闭连接,在代码中这样做的好处是加快关闭速度(例如,让另一端更快地意识到这一点)并更早地释放缓冲区和其他TCP状态信息,防止缺少此类空间而阻塞后续连接(对于其他程序)。当操作系统最终关闭连接时,在代码中这样做的好处是加快关闭速度(例如,让另一端更快地意识到这一点)并更早地释放缓冲区和其他TCP状态信息,防止缺少这样的空

假设我编写了一个程序,程序在启动后创建了tcp,我的问题是,我是否应该在关闭程序之前编写代码来关闭tcp连接。或者,操作系统可以自动关闭属于终止程序的tcp连接?

,而操作系统最终将关闭连接,在代码中这样做的好处是加快关闭速度(例如,让另一端更快地意识到这一点)并更早地释放缓冲区和其他TCP状态信息,防止缺少此类空间而阻塞后续连接(对于其他程序)。

当操作系统最终关闭连接时,在代码中这样做的好处是加快关闭速度(例如,让另一端更快地意识到这一点)并更早地释放缓冲区和其他TCP状态信息,防止缺少这样的空间阻止后续连接(对于其他程序)。

这与您标记的Linux内核没有任何关系。您可能有通用的
linux
标记,或者
posix
标记,也可能有
网络编程
标记。你的题目是“在”节目结束后,而你的问题是“在”之前。这不能两者兼而有之,也不能在程序终止后不执行。@多谢一些程序员,他们已经为此问题重新编辑过。现代多任务桌面和服务器操作系统释放了进程创建或使用的几乎所有资源,包括套接字。然而,总是在自己之后清理也是一个好习惯。如果你获得了一个资源,你也应该释放它。这与你标记的Linux内核没有任何关系。您可能有通用的
linux
标记,或者
posix
标记,也可能有
网络编程
标记。你的题目是“在”节目结束后,而你的问题是“在”之前。这不能两者兼而有之,也不能在程序终止后不执行。@多谢一些程序员,他们已经为此问题重新编辑过。现代多任务桌面和服务器操作系统释放了进程创建或使用的几乎所有资源,包括套接字。然而,总是在自己之后清理也是一个好习惯。如果你获得了一个资源,你也应该释放它。