简易web服务器
1.设定服务器端口号,获取服务器IP地址。
2.创建服务器监听socket socket();
3. 连接服务器socket和端口号 bind();
4. 让服务器socket处于监听状态 listen();
5. 在循环中调用accept(),获取客户端连接的socket。accept()默认阻塞,直到有客户端连接后返回连接套接字。
6. 创建线程处理该套接字,使用recv()从socket中读取字符。
7. 解析HTTP请求报文,如
首先是请求方法,请求URL,HTTP协议版本。
Host:主机名
8.将请求路径转换为本地路径,将文件的副本通过send()发送。
9.响应报文
起始行:HTTP协议版本,状态码。
首部:文件类型,文件长度。
10.发送完毕后使用close()结束通信。
1.udp服务器
- 创建一个socket,用函数socket();
- 设置socket属性,用函数setsockopt();* 可选
- 绑定IP地址、端口等信息到socket上,用函数bind();
- 循环接收数据,用函数recvfrom();
- 关闭网络连接
2.udp客户端
- 创建一个socket,用函数socket();
- 设置socket属性,用函数setsockopt();* 可选
- 绑定IP地址、端口等信息到socket上,用函数bind();* 可选
- 设置对方的IP地址和端口等属性;
- 发送数据,用函数sendto();
- 关闭网络连接;
3.tcp服务器
- 创建一个socket,用函数socket();
- 设置socket属性,用函数setsockopt(); * 可选
- 绑定IP地址、端口等信息到socket上,用函数bind();
- 开启监听,用函数listen();
- 接收客户端上来的连接,用函数accept();
- 收发数据,用函数send()和recv(),或者read()和write();
- 关闭网络连接;
- 关闭监听;
4.tcp客户端
- 创建一个socket,用函数socket();
- 设置socket属性,用函数setsockopt();* 可选
- 绑定IP地址、端口等信息到socket上,用函数bind();* 可选
- 设置要连接的对方的IP地址和端口等属性;
- 连接服务器,用函数connect();
- 收发数据,用函数send()和recv(),或者read()和write();
- 关闭网络连接;