一个进程是否可以bind多个端口号呢?
端口号就是用来告诉操作系统要对于那一个进程进行操作,也就是说端口号就是用来标识一个进程;
一个端口号只可被一个进程所占用,但是一个进程可以拥有多个端口号,也就是进程和端口号是一对多的关系;
当我们写一个程序使用端口号的时候,要避开这些知名端口号。
【问题】
1.一个进程是否可以bind多个端口号呢?
可以,因为一个进程可以打开多个文件描述符,而每一个文件描述符都对应着一个端口号,所以一个进程可以绑定多个端口号
2.一个端口号是否可以被多个进程bind?
不可以
如果一个进程先绑定一个端口号,然后再fork一个子进程,这样的话就实现了多个进程绑定一个端口号,但是不同的进程绑定同一个端口号是不可以的
TIME_WAIT状态,服务器不能立即重启也说明不用进程不能同时绑定同一个端口号
3.多个进程可以监听同一个端口号吗?
可以。监听之前要进行创建套接字->绑定ip::端口号->监听。我们可以在bind之前使用setsockopt函数,设置套接字选项,其中就包括REUSEADDR这个选项,表明多个进程可以复用bind函数中指定的地址和端口号
所以套接字就可以准确的标识一台主机上的一个进程,从而完成计算机之间的通信
计算机之间的通信:
主机A的某个进程与主机B上的另一个进程进行通信。
下一篇:雅安电信服务器UDP的特点介绍