作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
例如,我有一个程序用作监听端口 5000 的 TCP 服务器。
现在我想运行另一个命令行进程以与该服务器并行运行。我知道正确的做法是 fork 服务器,而不是调用“exec”....
我的问题是,子进程是否也“拥有”这个端口 5000?如果我要释放这个5000端口,是不是需要把父进程和子进程都杀掉?
我很好奇这个套接字连接是如何在 fork 中处理的。
最佳答案
accept()
传入连接。接受进程现在有了监听套接字和新接受的套接字的句柄。当对句柄的所有引用都关闭时,各种套接字资源将被回收。如果进程终止,则其所有句柄都将隐式关闭。因此,如果一个子进程关闭它继承到监听套接字的句柄,则该套接字剩下的唯一句柄存在于父进程中。然后,当父进程终止或显式关闭此句柄时,监听套接字将被回收。
关于sockets - 如何在 fork 进程中处理套接字连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6014055/
我是一名优秀的程序员,十分优秀!