0
点赞
收藏
分享

微信扫一扫

C++ socket网络编程笔记(服务端2)

接上篇

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];        // 用于记录ip

        printf("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

举报

相关推荐

0 条评论