# 基于TCP socket实现的web服务器 **Repository Path**: gyjchonga/Web-Server ## Basic Information - **Project Name**: 基于TCP socket实现的web服务器 - **Description**: 基于TCP socket实现的支持报文解析并返回响应报文的Web服务器,可以响应多种文件需求并能够处理特定的错误情况 - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-03-04 - **Last Updated**: 2021-09-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于TCP socket实现的web服务器 #### 介绍 基于TCP socket实现的支持报文解析并返回响应报文的Web服务器,可以响应多种文件需求并能够处理特定的错误情况 服务器实现及其功能: 1、读取配置文件,为服务器自身设置IP地址、端口号、阻塞模式、最大连接数目并设置提取文件的根目录; 2、根据上述IP地址、端口号通过socket、bind函数建立套接字,并利用listen对套接字进行监听; 3、通过select实现io复用,并检测是否有可读或者可写的文件描述符到来(也就是有无客户端连接到来); 4、当有连接到来时,调用accept函数,将客户端套接字与服务器套接字组成新的会话,并将会话添加到会话socket队列session中(用list实现); 5、从session中取出会话,接收并按照http协议分析客户端的请求报文,根据其提供的路径寻找相应的文件; 6、如果找到文件的话就将文件拟为报文形式,基于TCP协议传输到客户端,如果文件过大,则采用分片传送的方式; 7、如果没有找到文件,则返回404页面予以告知。