扫码关注官方订阅号
如题,网上貌似没有搜到太多的答案,讲道理不是一个进程被一个端口号识别么,服务器的ip和端口也应该是固定的。
另外像node.js这种,每次新的连接过来的时候是一个event,怎么去识别哪一个event属于一个client?
学习是最好的投资!
自 BSD Socket 之后,网络端口对于应用程序员而言就是文件,操作系统管理起来也很像文件,文件的操作权限是父子进程共享的,如果在fork()前就拥有了那个 socket 的话,那fork()后的子进程也就可以使用相同端口。新的连接不存在你说的这个问题吧,应该是已有连接发送数据如何判断这个数据是哪个连接发来的吧,这个底层是由 IP 协议实现的,操作系统据此也可以反推出来的数据包来自于那个连接,nodejs 特殊的地方在于采用了异步的方式,而这个是由比如 epoll 这样的操作系统提供的操作来实现的,操作系统会告诉 nodejs 新来的数据是来自哪个连接的,然后 nodejs 再做处理。
fork()
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
自 BSD Socket 之后,网络端口对于应用程序员而言就是文件,操作系统管理起来也很像文件,文件的操作权限是父子进程共享的,如果在
fork()前就拥有了那个 socket 的话,那fork()后的子进程也就可以使用相同端口。新的连接不存在你说的这个问题吧,应该是已有连接发送数据如何判断这个数据是哪个连接发来的吧,这个底层是由 IP 协议实现的,操作系统据此也可以反推出来的数据包来自于那个连接,nodejs 特殊的地方在于采用了异步的方式,而这个是由比如 epoll 这样的操作系统提供的操作来实现的,操作系统会告诉 nodejs 新来的数据是来自哪个连接的,然后 nodejs 再做处理。