前言:第一个版本基于V8实现了一个简单版本的服务器,第二个版本支持多进程架构,支持SO_REUSEPORT。本文介绍第二版的一些实现。设计上还是比较随意的,目前的重点是功能。首先,让我们看看如何使用第二个版本。1通过fork共享端口constTCPServer=TCP();consttcpServer=newTCPServer('127.0.0.1',8989);tcpServer.socket();tcpServer.setReusePort(1);tcpServer.bind();tcpServer.listen();for(leti=0;i<3;i++){//等于0表示是子进程,进入处理连接的逻辑,否则是主进程,循环创建多个进程if(Child_Process.fork()===0){while(1){tcpServer.accept();}}}//主进程创建子进程后进入阻塞状态Child_Process.wait();通过fork共享端口版本的原理是主进程先创建一个socket并绑定一个端口。然后通过fork让多个子进程共享监听端口。最后主进程进入阻塞模式。核心实现是fork,我们看代码。staticLocal