急急急!socket 通信
程序是通过socket通信来转发一些数据,现在问题是,程序执行一段时间后客服端无法正常接收数据,也就是程序发送不了数据,大家帮忙想想会是什么原因呢?谢谢了
[解决办法]
这个可能是你在接受数据之后没有清除缓冲区数据导致的
[解决办法]
为什么不调试一下呢?发送不了?send出错? 接受不了?recv出错/阻塞?getlasterr? 就说一个现象,怕是很难得找到原因吧。
[解决办法]
究竟是没有发出去还是没有接收到,应该确认一下
[解决办法]
你可以使用抓包工具抓一下数据包,看看是不是数据没法出去还是对端没有接收到数据。
比如使用wireshark或者其他的。
[解决办法]
抓包
注意检查各函数调用的返回值
[解决办法]
检查是否资源泄漏的办法之一:
在任务管理器 进程 查看 选择列 里面选择:内存使用、虚拟内存大小、句柄数、线程数、USER对象、GDI对象
让你的程序(进程)不退出,循环执行主流程很多遍,越多越好,比如1000000次甚至无限循环,记录以上各数值,再隔至少一小时,越长越好,比如一个月,再记录以上各数值。如果以上两组数值的差较大或随时间流逝不断增加,则铁定有对应资源的资源泄漏!
[解决办法]
socket创建
bind 绑定端口号
listen 进行端口号监听
accept 接收连接
send/recv 发送或接收
这样的逻辑如果还是不能通信就可能是硬件问题了。
[解决办法]