一个进程是否可以bind多个端口号呢?

端口号就是用来告诉操作系统要对于那一个进程进行操作,也就是说端口号就是用来标识一个进程;

一个端口号只可被一个进程所占用,但是一个进程可以拥有多个端口号,也就是进程和端口号是一对多的关系;

当我们写一个程序使用端口号的时候,要避开这些知名端口号。

bind进程的端口问题

【问题】

1.一个进程是否可以bind多个端口号呢?

可以,因为一个进程可以打开多个文件描述符,而每一个文件描述符都对应着一个端口号,所以一个进程可以绑定多个端口号

2.一个端口号是否可以被多个进程bind?

不可以

如果一个进程先绑定一个端口号,然后再fork一个子进程,这样的话就实现了多个进程绑定一个端口号,但是不同的进程绑定同一个端口号是不可以的

TIME_WAIT状态,服务器不能立即重启也说明不用进程不能同时绑定同一个端口号

3.多个进程可以监听同一个端口号吗?

可以。监听之前要进行创建套接字->绑定ip::端口号->监听。我们可以在bind之前使用setsockopt函数,设置套接字选项,其中就包括REUSEADDR这个选项,表明多个进程可以复用bind函数中指定的地址和端口号

所以套接字就可以准确的标识一台主机上的一个进程,从而完成计算机之间的通信

计算机之间的通信:

主机A的某个进程与主机B上的另一个进程进行通信。

您可能还会对下面的文章感兴趣:

COPYRIGHT © 2010-2018 云悫计算机系统有限公司 All Rights Reserved.

粤ICP备16096532号
  • 首页
  • 咨询
  • 电话
  • 返回顶部