server 端 : 创建,绑定,监听,建立连接,接收数据,发送数据,关闭
1:创建socket,返回socket_fd
sock = socket(AF_INET, SOCK_STREAM, 0);
2: 设置socket属性,本条可选
rc = setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (char *)&on, sizeof(on));
3:将socket与众所周知的的IP地址绑定,客户端用以连接服务器的地址
rc = bind(sock, (struct sockaddr *)&servaddr, sizeof(servaddr));
4:服务器监听在已经绑定的地址和端口上,并设置允许连的最大连接数
rc = listen(sock, 5);
5:一旦服务器调用了listen,套接字就能接收到连接请求,使用accept获得连接请求的fd 并建立连接;
sock_client = accept(sock, (struct sockaddr *)&client, &addrlen);
6:关闭连接
close(sock_client); 关闭客户端请求过来的连接socket
close(sock); 关闭服务器端的socket
client端: 建立socket, 发起连接, 发送数据,接收数据,关闭socket;
1:创建socket,返回socket_fd
sock = socket(AF_INET, SOCK_STREAM, 0);
2:客户端发起连接请求
rc = connect(sock , (struct sockaddr *)&gAddr, sizeof(gAddr));
参数: sock 为客户端申请的socket, gAddr为服务器地址;
3:sock发送数据
rc = send(sock, TEST_MESSAGE, sizeof(TEST_MESSAGE), 0);
4:接收数据
ssize_t recv(int sockfd, void* buf, size_t nbytes, int flag);