社区
网络通信/分布式开发
帖子详情
关于SOCKET发送不出数据的问题
zzkk3025
2009-04-12 10:16:44
关于SOCKET发送不出数据的问题
有个C/S1/S2 的应用系统, C 为一个客户端, S1 为一个中间转发数据的程序,S2 为处理业务的主程序。现在遇到一个较奇怪的现象, C(客户端) 程序在部分XP机器上运行正常,部分XP机器上出现频繁中断的情况,经过测试,C(客户端)在中断的XP机器上发送到一定的数据(大约5-6K)就发送不出去, S1程序未检测到 C(客户端)程序的任何异常。 C(客户端)在 WIN2003 上运行一切正常。
...全文
370
6
打赏
收藏
关于SOCKET发送不出数据的问题
关于SOCKET发送不出数据的问题 有个C/S1/S2 的应用系统, C 为一个客户端, S1 为一个中间转发数据的程序,S2 为处理业务的主程序。现在遇到一个较奇怪的现象, C(客户端) 程序在部分XP机器上运行正常,部分XP机器上出现频繁中断的情况,经过测试,C(客户端)在中断的XP机器上发送到一定的数据(大约5-6K)就发送不出去, S1程序未检测到 C(客户端)程序的任何异常。 C(客户端)在 WIN2003 上运行一切正常。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
MMas
2009-04-28
打赏
举报
回复
send之后出现阻塞错误,楼主的SOCKET是不是用消息模型,如果是的话,建议改用SELECT模型,在发送较多数据的时候会相对稳定些.
僵哥
2009-04-13
打赏
举报
回复
杀脑细胞的问题...
拜托,光这样子说,就好比在张贴你的“心情描述”,不觉得有任何可以帮助解决问题的意义。
最为简单的是,你的客户端程序怀疑是跟OS有关系,那至少得知道使用到哪些控件,哪些API,Socket通讯,至少用到哪些函数,或者哪种模式,什么select,WSAEventSelect,WSAAsyncSelect,或者WSAWaitForMultipleEvents,Overlapped I/O,I/O Completion Port...
OS的子版本号呢?甚至是UDP协议还是TCP协议都没有说明。
很多问题没那么神奇,关键在于需要耗费大量时间和精力去找原因。如果原因确实存在倒还简单,如果某些是三方原因(即所谓不是原因的原因),那就有得耗了。
lyguo
2009-04-13
打赏
举报
回复
感觉 XP 对互斥变量支持 有点问题。
我的程序也是,在2003 下运行正常,在XP下,有点不正常。
zzkk3025
2009-04-13
打赏
举报
回复
控件都是DELPHI 7.0 的标准控件,没有什么特殊的封装,现在做了以下变更,控制发送的数据包和频率,每次发送 16个字符 ,每秒发送 10次, 这样的程序效率很低,但这种情况下程序正常了,怀疑XP是那个地方有啥限制,XP 为 雨林木风 WWW.YLMF.COM 76481-OEM-0011903-01811 Ghost XP SP3 装机版 YN9.9 那位大侠遇见过这种情况?
经过大量的测试,只要每次发送大于16个字符 大约发送数据达到 5K 左右 ,客户端发送不 出去了 ,问题原因还没有找到 !
jason_28693
2009-04-13
打赏
举报
回复
[Quote=引用 4 楼 gzmhero 的回复:]
发送太快,系统缓冲区满了,你没判断发送的返回值么,看看是不是每次都能全部发送出去。
[/Quote]
遇到过同样问题,getopt..获取socket状态信息, setopt.. 吧缓冲区设置大点儿。
不过如果网络慢,设置多大都会堵住。
send的时候查看缓冲区是否已能够容纳你要发送的buf的长度!允许发送再发送,否则就等待发送超时;如果是事件驱动就死等好了!
gzmhero
2009-04-13
打赏
举报
回复
[Quote=引用 2 楼 zzkk3025 的回复:]
控件都是DELPHI 7.0 的标准控件,没有什么特殊的封装,现在做了以下变更,控制发送的数据包和频率,每次发送 16个字符 ,每秒发送 10次, 这样的程序效率很低,但这种情况下程序正常了,怀疑XP是那个地方有啥限制,XP 为 雨林木风 WWW.YLMF.COM 76481-OEM-0011903-01811 Ghost XP SP3 装机版 YN9.9 那位大侠遇见过这种情况?
经过大量的测试,只要每次发送大于16个字符 大约发送数据达到 5K 左右 ,客户端发送不 出去了 ,问题…
[/Quote]
发送太快,系统缓冲区满了,你没判断发送的返回值么,看看是不是每次都能全部发送出去。
毕业设计-基于JAVA的网络通讯系统设计与实现(论文+系统)
一般来说,聊天工具大多数由客户端程序和服务器程序,外加服务器端用于存放客户
数据
的
数据
库组成,本系统采用客户机/服务器架构模式,通过Java提供的
Socket
类来连接客户机和服务器并使客户机和服务器之间相互通信,...
p2p-chat:P2P LAN聊天和文件共享工具|内网p2p聊天和文件传输工具
TCP传输的最小单位是字节,从
数据
事件拿到的
数据
可能不是完整的消息,如果一个套接字连续
发送
消息,字节可能会黏住,分
不出
需要的消息的结束位置。因此,我要实现一个解析器,从字节流中解析出消息。 我想到的第一...
你必须知道的495个C语言
问题
5.14 为什么有那么多关于空指针的疑惑?为什么这些
问题
如此频繁地出现? 5.15 有没有什么简单点儿的办法理解所有这些与空指针有关的东西呢? 5.16 考虑到有关空指针的所有这些困惑,要求它们的内部表示都必须为...
linux send 失败_
socket
send()成功却发
不出
数据
完整代码不方便贴出来,贴出了简化的部分...2.再次复现
问题
,抓包。这次抓所有tcp包。看是不是有处理错误的协议,导致客户端解释不了丢掉了。结果代理这边并没有发出异常的tcp包。有思路么,有思路么,有思路么,谁...
java
socket
编程服务器接收不到
数据
本人在
socket
编程的时候,...一、网上其实有很多的关于
socket
的小例子,有的甚至特别精炼——连上
socket
,发了
数据
就直接关闭。这种方式是可以成功传送到服务器。 二、如果想在线程中不断的接收和
发送
数据
(
socket
一直
网络通信/分布式开发
1,593
社区成员
32,964
社区内容
发帖
与我相关
我的任务
网络通信/分布式开发
Delphi 网络通信/分布式开发
复制链接
扫一扫
分享
社区描述
Delphi 网络通信/分布式开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章