每当传统Server接受一个新的连接的时候,都要新建一个进程来维护这个连接,那么这个进程需要使用新的端口么?
如题,网上貌似没有搜到太多的答案,讲道理不是一个进程被一个端口号识别么,服务器的ip和端口也应该是固定的。
另外像node.js这种,每次新的连接过来的时候是一个event,怎么去识别哪一个event属于一个client?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
自 BSD Socket 之后,网络端口对于应用程序员而言就是文件,操作系统管理起来也很像文件,文件的操作权限是父子进程共享的,如果在
fork()
前就拥有了那个 socket 的话,那fork()
后的子进程也就可以使用相同端口。新的连接不存在你说的这个问题吧,应该是已有连接发送数据如何判断这个数据是哪个连接发来的吧,这个底层是由 IP 协议实现的,操作系统据此也可以反推出来的数据包来自于那个连接,nodejs 特殊的地方在于采用了异步的方式,而这个是由比如 epoll 这样的操作系统提供的操作来实现的,操作系统会告诉 nodejs 新来的数据是来自哪个连接的,然后 nodejs 再做处理。