tcp的各版本服务器

tcp是面向连接的,全双工,字节流的一种协议
介绍需要用到的函数:
tcp的各版本服务器
socket()打开一个网络通讯端口。成功返回一个文件描述符,表示该套接字,应用程序就可以在网络收发数据。出错返回-1.
因为我们是IPv4协议/tcp协议,第一个参数为AF_INET,表示IP, 第二个参数为SOCK_TREAM,表示tcp协议,第三个参数为0.忽略
tcp的各版本服务器
因为是服务器,所以需要唯一的网络地址和端口号,以便客户端访问。bind()作用就是绑定一个固定的网络地址和端口号。成功返回0,失败-1.
tcp的各版本服务器
监听状态,允许有backlog个客户端处于等待连接状态。如果接到更多的请求就忽略。成功返回0,失败-1.
tcp的各版本服务器
三方握手成功后,服务器调用accept()接收连接。如果没有连接,就阻塞等待。

版本1:只能接收一个客户端访问服务器
server.c
tcp的各版本服务器
tcp的各版本服务器
tcp的各版本服务器
tcp的各版本服务器
编写客户端,连接服务器。
需要用connect()连接服务器。
tcp的各版本服务器
client.c
tcp的各版本服务器
tcp的各版本服务器
用本地环回测试
tcp的各版本服务器
版本2:多进程。可以实现多个客户端访问。
tcp的各版本服务器
tcp的各版本服务器
tcp的各版本服务器
tcp的各版本服务器
tcp的各版本服务器
tcp的各版本服务器
客户端同上。
我用本地环回进行测试。结果如下:
tcp的各版本服务器
大家可以用局域网进行网络验证。
版本3:多线程版本
tcp的各版本服务器
tcp的各版本服务器
tcp的各版本服务器
tcp的各版本服务器
tcp的各版本服务器
客户端同上。
测试方法同上。