社区
网络编程
帖子详情
TCP连接 客户端断开后,服务器端任能不断收到客户端最后一次发送的数据?
onion____
2011-07-02 05:22:23
服务器与客户端都用select模型,客户端成功发送一次数据并且服务器成功接收 后,客户端断开连接 (closesocket()或者强行断开)服务器基本上都会不断收到客户端最后一次发送的数据? (select read一直为true) 这是为什么? 怎样处理这种情况使其能刷新接收缓冲区 使select结果为假
...全文
779
7
打赏
收藏
TCP连接 客户端断开后,服务器端任能不断收到客户端最后一次发送的数据?
服务器与客户端都用select模型,客户端成功发送一次数据并且服务器成功接收 后,客户端断开连接 (closesocket()或者强行断开)服务器基本上都会不断收到客户端最后一次发送的数据? (select read一直为true) 这是为什么? 怎样处理这种情况使其能刷新接收缓冲区 使select结果为假
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
GoForSky
2011-07-04
打赏
举报
回复
贴代码!!!
yaozhiyong110
2011-07-03
打赏
举报
回复
不可能事件 自己的逻辑有问题...
onion____
2011-07-03
打赏
举报
回复
[Quote=引用 3 楼 zzz3265 的回复:]
select 返回的是int,
出错返回-1, 也是true, 确定下到底返回什么
[/Quote]
是正数 上面打错了
onion____
2011-07-03
打赏
举报
回复
[Quote=引用 3 楼 zzz3265 的回复:]
select 返回的是int,
出错返回-1, 也是true, 确定下到底返回什么
[/Quote]
是整数 不是-1
Yofoo
2011-07-03
打赏
举报
回复
select 返回的是int,
出错返回-1, 也是true, 确定下到底返回什么
onion____
2011-07-03
打赏
举报
回复
[Quote=引用 1 楼 zzz3265 的回复:]
服务器基本上都会不断收到客户端最后一次发送的数据
没看明白, 是服务器收到多个数据? (这是你代码逻辑问题)
是服务器无法收到最后的数据?
这可能是客户端过早关闭, 导致客户端的数据没发送完成, 具体的可以看msdn的 closesocket 后面的备注
This is called a hard or abortive close, because the socket's……
[/Quote]
比如 CLient 最后一次发送内容 “ Hello ”
Server收到 显示 Hello
Client 关闭
Server Recv方法不断收到 Hello 接收完一次 再次Recv又收到 Hello
Yofoo
2011-07-02
打赏
举报
回复
服务器基本上都会不断收到客户端最后一次发送的数据
没看明白, 是服务器收到多个数据? (这是你代码逻辑问题)
是服务器无法收到最后的数据?
这可能是客户端过早关闭, 导致客户端的数据没发送完成, 具体的可以看msdn的 closesocket 后面的备注
This is called a hard or abortive close, because the socket's virtual circuit is reset immediately, and any unsent data is lost. Any recv call on the remote side of the circuit will fail with WSAECONNRESET.
c++高并发商业级游戏服务器干货【
客户端
ue4和unity3d】
1、本课程是一个干货课程,主要讲解如何封装服务器底层,使用
Tcp
/ip长
连接
,IDE使用vs2019 c++开发以及使用c++11的一些标准,跨平台windows和linux,服务器性能高效,单服务器压力测试上万无压力,服务器框架是经历过上线产品的验证,框架简单明了,不熟悉底层封装的人,半个小时就能完全掌握服务器框架上手写业务逻辑。2、本课程是一个底层服务器框架教程,主要是教会学员在windows或linux下如何封装一个高效的,避免踩坑的商业级框架,服务器底层使用初始化即开辟内存的技术,使用内存池,服务器运行期间内存不会溢出,非常稳定,同时服务器使用自定义哈希hashContainer,在处理新的
连接
,新的
数据
,新的封包,以及解包,发包,粘包的过程,哈希容器性能非常高效,增、删、查、改永远不会随着
连接
人数的上升而降低性能,增、删、查、改的复杂度永远都是恒定的O(1)。3、服务器底层封装没有使用任何第三方网络库以及任何第三方插件,自由度非常的高,出了任何BUG,你都有办法去修改,查找问题也非常方便,在windows下使用iocp,linux下使用epoll.4、讲解c++纯
客户端
,主要用于服务器之间通信,也就是说你想搭建多层结构的服务器,服务器与服务器之间使用socket通信。还可以使用c++
客户端
做压力测试,开辟多线程
连接
服务器,教程提供了压力测试,学员可以自己做压力测试服务器性能。5、赠送ue4和unity3d通信底层框架以及多人交互demo,登录,注册,玩家离开,同步主要是教会学员服务器与
客户端
如何交互。6、赠送c++
连接
mysql
数据
库框架demo,登录,注册,玩家离开
数据
持久化.7、服务器教程使用自定义通信协议,同时也支持protobuf,选择权在开发者自己手里,想用什么协议都可以,自由度高。8、服务器教程使用手动敲代码逐句讲解的方式开展教学课程。非喜勿喷,谢谢大家。9、服务器教程提供源码,大家可以在平台提供的地址下载或者联系我,服务器使用c++11部分标准,std::thread,条件变量,线程锁,智能指针等,需要学员具备一定c++知识,购买前请慎重考虑。
C# Socket
客户端
断开
后
服务器端
没能判断
客户端
断开
在工作编写一个C#的服务器和Python进行通讯的时候碰到的一个问题,由于工作需求需要,python会每次
连接
(服务器用的是
TCP
)服务器就只会
发送
一条指令然后就会
断开
连接
,下次会重新
连接
。在这样的情况下就出现了当...
解决
TCP
通信
客户端
断开
连接
服务器自动关闭
服务器会
断开
主要是
客户端
断开
后产生了 SIGPIPE信号 在对的位置忽略掉该信号就可以了! 蓝色框体为我自己测试结果!框体左边的是查的大牛们的讲解。 哈哈!第
一次
写博客 还请多包涵!都不会用这玩意儿 .........
Linux中
tcp
服务器检测
客户端
断开
连接
的方法
现在是在一个树莓派上执行编写好的
tcp
服务器的程序,一旦有
客户端
连接
上来,服务器就会
不断
的向
客户端
发送
类似于心跳包的
数据
。现在的需求是,当
客户端
软件关闭,服务器不需要从新启动服务器上的
tcp
进程。 涉及到...
TCP
通信中服务器处理
客户端
意外
断开
这是由于close socket(s)或者shutdown(s)有个正常的关闭过程,会告诉对方“
TCP
连接
已经关闭,你不需要再
发送
或者接受消息了”。 但是,如果意外
断开
,
客户端
(3g的移动设备)并没有正常关闭socket。双方并未按照协议...
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章