文章代码来源:高并发Web服务器
Socket 初始化流程
- 首先检查端口是否合法,不可使用公知端口,以及超出最大端口大小
- 创建监听文件描述符,当有连接到来时会产生事件,被Epoll监测到
- 文件描述符绑定ip地址
- 开始监听,并将监听文件描述符添加进Epoll的事件监听集合中(具体使用那种数据结构没有仔细探究)
- 设置监听文件描述符非阻塞。这一步很重要,不然如果一直没有连接到来服务器会被阻塞。
以上这些步骤所需要的功能底层都用c语言实现(就是一些经典的库函数),但是都做了良好的封装
初始化 Socket代码:
1 | * Create listenFd */ |