接上篇
C++ socket网络编程笔记(服务端1)_m0_46480482的博客-CSDN博客
1. 用一个while循环来持续监听信道消息
int done = 1;
while(done)
{....
}
2. 创建一个客户信箱来接受收到的消息
int client_sock;
3. 创建一个客户信息的标签记录信息
struct sockaddr_in client; //标签socklen_t client_addr_len; //用于记录标签长度,accept函数中要用到client_addr_len = sizeof(client);
4 将接受到的消息放到之前创建的客户信箱client_sock中
client_sock = accept(sock,(struct sockaddr *)&client , &client_addr_len);// sock是服务器的信箱,client是标签,client_addr_len是标签长度
5.可以将收到的客户消息的ip地址及端口号打印出来
char client_ip[64]; // 用于记录ipprintf("client ip:%s\t port: %d\n", inet_ntop(AF_INET,&client.sin_addr.s_addr,client_ip,sizeof(client_ip)),ntohs(client.sin_port));// 分别为获取ip和端口号
6. 读取消息内容
int len;char buf[256]; len = read(client_sock,buf,sizeof(buf)-1); // 读取消息内容 放到buf中 同时获取长度buf[len]='\0';printf("recive[%d]: %s\n",len,buf); // 打印消息内容
7 写回消息
len = write(client_sock,buf,len);printf("len:%d\nsend_message:%s\nFinished.",len,buf);
8.关闭连接
close(client_sock);done = 0 ;close(sock);
下篇(完整代码):
https://blog.csdn.net/m0_46480482/article/details/122995283