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

接上篇

C++ socket网络编程笔记(服务端1)_m0_46480482的博客-优快云博客

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.youkuaiyun.com/m0_46480482/article/details/122995283

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值