真的这么怪?
awjx 2005-01-10 12:14:48 我做了一个类QQ,两端的通信都经过服务器转发.
在局域网绝对没问题,测试半年了.保证没问题,非常稳定.
但如果服务器绑定到公网IP,两端在不同的局域网内通过服务器转发数据时就有一点错误.
现像是这样的:
出错位置:
1 socket.Receive(HeadData,0,4,SocketFlags.None);
2 int len = BitConverter.ToInt32(HeadData,0);
3 byte [] buffer = new byte[len];
4 socket.Receive(buffer ,0.buffer .Length,SocketFlags.None);
....
执行完第1行没问题,但执行到第4行后面时就抛出异常,
而异常指的却是第1行出错"远程主机强迫关闭了一个现有的连接".
远程并没有关闭,就算关闭了,也不可能是第一行出错吧?因为第一行已正确读取了长度,第4行也正确接收数据了.
更奇怪的是,与远程的连接并没的断,通信能正常进行.
但不知什么时候就掉线了.
怪得很,我都不知怎么描述.
代码太长,实在没办法帖.
大家帮帮我吧,这是第三天了.烦啊!