C++socket编程(三):3.6 服务端recv客户端发送的数据
服务端中获取客户端发送过来的数据一定是关闭套接字之前进行,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);
实验演示:
服务端:
客户端:
二:服务端循环接收客户端的数据
将上面的代码进行调整,比如说我们收到用户发一个quit之后我们再退出,不然我们就一直接收用户信息
如下代码:
for (;;){int recvlen = recv(client, buffer, sizeof(buffer) - 1, 0); //第四个参数这个0是flag和系统相关,有很多自定一的操作,我们这边0就是不对他设置if (recvlen <= 0)break;buffer[recvlen] = '\0';if (strstr(buffer, "quit") != NULL)break;printf("recv %s\n", buffer);}
演示:
服务端
客户端:
C++socket编程(三):3.6 服务端recv客户端发送的数据相关推荐
- Netty的Socket编程详解-搭建服务端与客户端并进行数据传输
场景 Netty在IDEA中搭建HelloWorld服务端并对Netty执行流程与重要组件进行介绍: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article ...
- springboot实现SSE服务端主动向客户端推送数据,java服务端向客户端推送数据,kotlin模拟客户端向服务端推送数据
SSE服务端推送 服务器向浏览器推送信息,除了 WebSocket,还有一种方法:Server-Sent Events(以下简称 SSE).本文介绍它的用法. 在很多业务场景中,会涉及到服务端向客户端 ...
- c# WINFORM SOCKET编程-简单聊天程序(服务端)
初学C#的SOCKET编程,照着网上的代码写下来,程序总是有问题,经过自己长时间的调试,完成程序,以下是原码,有需要可以参考一下,还不完善,欢迎大家批评指正.(这里的代码没更新,附件重新上传更新,在另 ...
- Socket编程实践(6) --TCP服务端注意事项
僵尸进程处理 1)通过忽略SIGCHLD信号,避免僵尸进程 在server端代码中添加 signal(SIGCHLD, SIG_IGN); 2)通过wait/waitpid方法,解决僵尸进程 sign ...
- java socket 包头包体_使用JAVA上抓取Socket服务端和客户端通信TCP数据包
使用Java抓取Socket通信TCP数据包 使用WireShark默认使用的是winpcap去抓本地环回的数据包,需要安装npcap再在Wireshark选择本地环回的网卡抓包 在Java-Sock ...
- socket文件传输服务器,Socket文件传输(含服务端以及客户端源码)
Socket文件传输 [实例简介] 传输任意格式文件 [实例截图] [核心代码] using System; using System.Collections.Generic; using Syste ...
- 服务器怎么向指定客户端发送信息,WebSocket 如何实现服务端向客户端发送消息?...
我们都知道, Websocket 是一个双向的通讯方式,一般情况下,我们都是根据 Client 的情况返回信息,但是在一个更加健壮的系统,我们可能需要主动的向客户端发送消息.我试图在中文网络去搜索,查 ...
- Java中Socket通信-服务端和客户端双向传输字符串实现
场景 什么是socket 在计算机通信领域,socket 被翻译为"套接字",它是计算机之间进行通信的一种约定或一种方式.通过 socket 这种约定,一台计算机可以接收其他计算机 ...
- web 服务端与客户端交互
Web server to client communication Technology 1. Traditional solution 传统模式的 Web 系统以客户端发出请求.服务器端响应的 ...
最新文章
- php返回结果判断,老司机在判断返回结果时翻了个身(ThinkPHP)
- 大厂程序媛的特殊烦恼:男朋友工资只有自己的60%,天天阴阳怪气!
- 谷歌、亚马逊、微软、IBM…这些巨头都已如何通过AI赚到钱了?
- Apache端口设置多域名和转发请求(虚拟域名)
- 计算机文化基础教程问什么好难买到,问一个翻译的问题新编计算机文化基础(教程 – 手机爱问...
- Unity中使用WebView
- 聊聊这些天收到的简历
- metronic-Website Template
- 基于云的平台利用新技术来改变商店式购物营销
- Nginx 负载均衡和缓存服务实战
- 传说中的80后的17条潜规则,你占了几条...
- 【转】JMeter Tutorial的安装和具体操作
- linux万能密码,Linux pam 后门纪录root用户密码以及设置万能密码登录root
- 软件工程第二次作业——git的使用
- 什么样的电子签名有法律效力
- 微信html5电子相册,如何快速制作微信H5电子相册?
- Depthwise卷积与Pointwise卷积
- 大数据入门培训之大数据开发基础知识学习
- html网页运行出现404错误,网页无法进入404错误是什么情况?怎么办? 爱问知识人...
- 10.(后端)响应信息优化
热门文章
- SqlServer2008R2镜像(无域)
- DateTime 格式相比较,timestampdiff() 函数的运用
- Spark源码剖析(一):如何将spark源码导入到IDEA中
- CSS3(七) 前端预处理技术(Less、Sass、CoffeeScript)
- tar包在linux下 java安装
- 深浅拷贝的应用-copy、mutableCopy
- 第六章 自动测试实施(上)
- android 字体点击变色,Android TextView 中实现部分文字变色以及点击事件
- 易语言客户端请求http_HTTP的重点问题
- 99%的人都不知道的鸡兔同笼解法!