网络recv返回-1问题
最近在学习directshow,网络实现视频传输,用的是TCP
mSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
现在有个很奇怪的问题,就是我的视频显示界面在主显示器(PC是双显示器,左右屏幕):
当在主显示器显示视频的时候,一切正常,拖动显示窗口也正常,运行N久也正常;可是一旦将显示视频界面拖动到副显示器(第二个显示器的时候),那么recv就返回-1,用Getlasterrro显示返回10053(VC解释为:你主机中的软件关闭掉了一个已建立的连接)。
大家知道可能是什么原因么? 网络 界面 TCP/IP
[解决办法]
是不是你不小心关闭了连接,还在使用socket句柄。这有很多socket源码,供参考:
http://download.csdn.net/detail/geoff08zhang/4571358
[解决办法]
自己跟踪,输出log,看看在什么地方关闭了日志,
但是也不要相信errorcode,自己看到的才可能真实的。
[解决办法]
检查自身程序,之前连接的socket资源被人为改动了。