C++socket编程(三):3.6 服务端recv客户端发送的数据

本文介绍在C++中使用socket编程时,服务端如何通过recv函数接收客户端发送的数据。强调数据接收必须在关闭套接字之前完成,并提供了一段服务端循环接收直到接收到'quit'才退出的示例代码。
摘要由CSDN通过智能技术生成

服务端中获取客户端发送过来的数据一定是关闭套接字之前进行,close之后就收不到数据了。
一般读取数据一般用read,windows上一般用recv(本质上也是read),但是为了跨平台,所以一般用revc。

如下代码

sockaddr_in caddr;

	socklen_t len = sizeof(caddr);

	int client = accept(sock, (sockaddr*)&caddr, &len);//创建一个新的socket,用来与客户端单独进行通信
	printf("accept client %d\n", client);
	char* ip = inet_ntoa(caddr.sin_addr);     
	unsigned short cport = ntohs(caddr.sin_port);       //将网络字节序转化为本地字节序
	printf("client ip is %s,port is %d\n", ip, cport);

	

	char buffer[1024] = { 0 };

	int recvlen = recv(client, buffer, sizeof(buffer)-1,0);  //第四个参数这个0是flag和系统相关,有很多自定一的操作,我们这边0就是不对他设置

	printf("recv %s\n", buffer);
	closesocket(client);

实验演示:
服务端:
在这里插入图片描述
客户端:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值