首页 > 每当传统Server接受一个新的连接的时候,都要新建一个进程来维护这个连接,那么这个进程需要使用新的端口么?

每当传统Server接受一个新的连接的时候,都要新建一个进程来维护这个连接,那么这个进程需要使用新的端口么?

如题,网上貌似没有搜到太多的答案,讲道理不是一个进程被一个端口号识别么,服务器的ip和端口也应该是固定的。

另外像node.js这种,每次新的连接过来的时候是一个event,怎么去识别哪一个event属于一个client?


自 BSD Socket 之后,网络端口对于应用程序员而言就是文件,操作系统管理起来也很像文件,文件的操作权限是父子进程共享的,如果在fork()前就拥有了那个 socket 的话,那fork()后的子进程也就可以使用相同端口。
新的连接不存在你说的这个问题吧,应该是已有连接发送数据如何判断这个数据是哪个连接发来的吧,这个底层是由 IP 协议实现的,操作系统据此也可以反推出来的数据包来自于那个连接,nodejs 特殊的地方在于采用了异步的方式,而这个是由比如 epoll 这样的操作系统提供的操作来实现的,操作系统会告诉 nodejs 新来的数据是来自哪个连接的,然后 nodejs 再做处理。

【热门文章】
【热门文章】