首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

急socket 通讯

2013-03-01 
急急急!socket 通信程序是通过socket通信来转发一些数据,现在问题是,程序执行一段时间后客服端无法正常接

急急急!socket 通信
程序是通过socket通信来转发一些数据,现在问题是,程序执行一段时间后客服端无法正常接收数据,也就是程序发送不了数据,大家帮忙想想会是什么原因呢?谢谢了
[解决办法]
这个可能是你在接受数据之后没有清除缓冲区数据导致的
[解决办法]
为什么不调试一下呢?发送不了?send出错? 接受不了?recv出错/阻塞?getlasterr? 就说一个现象,怕是很难得找到原因吧。 
[解决办法]
究竟是没有发出去还是没有接收到,应该确认一下
[解决办法]
你可以使用抓包工具抓一下数据包,看看是不是数据没法出去还是对端没有接收到数据。
比如使用wireshark或者其他的。
[解决办法]
抓包
注意检查各函数调用的返回值

[解决办法]
检查是否资源泄漏的办法之一:
在任务管理器 进程 查看 选择列 里面选择:内存使用、虚拟内存大小、句柄数、线程数、USER对象、GDI对象
让你的程序(进程)不退出,循环执行主流程很多遍,越多越好,比如1000000次甚至无限循环,记录以上各数值,再隔至少一小时,越长越好,比如一个月,再记录以上各数值。如果以上两组数值的差较大或随时间流逝不断增加,则铁定有对应资源的资源泄漏!

[解决办法]
socket创建
bind 绑定端口号
listen 进行端口号监听
accept 接收连接
send/recv 发送或接收
这样的逻辑如果还是不能通信就可能是硬件问题了。






[解决办法]

引用:
究竟是没有发出去还是没有接收到,应该确认一下
 +1

1、服务端没执行到send
2、send没成功
3、客户端没执行到recv
4、recv没成功

两边都getlasterr下吧 

热点排行