|
我写好了一个client 在arm9上跑,同事写了个server在win2000上跑,client往server发数据,服务端程序是阻塞式多线程实现,问题是:通信过程中,client会不明原因地自动结束(不明原因是只没任何提示),有的时候又可以看到如:connection refused和 connection reset by peer.初步原因经查证为:
1,tcp 端口连接数逻辑上为256个,但是因为服务线程处理数据费时,速度比client连接慢,没及时断开连接.
2,服务器套接口维护的连接队列长度不能满足需求
我现在还迷惑的是:
1;即使服务器重置连接或拒绝连接,client也不应该会结束,因为我的client在连接传输过程中的每一步失败后都是continue,继续尝试.
2;服务端拒绝连接和重置连接这种情况有什么好的解决方法啊,不可能每次都要重启client吧,我增设了服务端tcp端口连接上限效果也一样.
3;服务器套接口的连接队列大小该怎么设置,服务器程序是用c++写的,在c中是改变listen()函数的第二个参数设置,c++中同事不清楚怎么改 |
|