我做了一个类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行也正确接收数据了.更奇怪的是,与远程的连接并没的断,通信能正常进行.
但不知什么时候就掉线了.
怪得很,我都不知怎么描述.
代码太长,实在没办法帖.
大家帮帮我吧,这是第三天了.烦啊!