网络编程基础与实践:从套接字到嵌入式Web服务器
1. 网络套接字基础
网络套接字(Network Sockets)是一种服务标识符,由“点分十进制”的互联网地址(如192.168.1.11)和协议端口号组成。客户端使用这个名称来访问服务。
服务器端的工作流程如下:
1. 使用listen()服务创建一个连接队列。
2. 使用accept()服务等待客户端的连接请求。当成功接收到连接请求时,accept()返回一个新的套接字,用于该连接的数据传输。
3. 服务器使用标准的read()和write()调用进行数据传输,使用套接字描述符的方式与文件描述符相同。
4. 当交易完成后,关闭新创建的套接字。
服务器可以生成一个新的进程或线程来处理连接,同时继续等待其他客户端请求,从而实现同时为多个客户端服务。
客户端的工作流程如下:
1. 创建一个套接字,并将其命名为与服务器公开广告的名称相匹配。
2. 尝试使用connect()连接到服务器。
3. 如果连接请求成功,客户端使用套接字描述符通过read()和write()调用进行数据传输。
4. 当交易完成后,客户端关闭套接字。
下面是服务器和客户端的流程对比表格:
| 服务器操作 | 客户端操作 |
| — | — |
|