作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个 TCP 服务器使用 select
通过 TCP 套接字从客户端获取数据。服务器消耗数据的速度很慢,而客户端速度要快得多。我的客户端每次发送 8 个字节的数据- 打开一个新的连接-写数据-断开因此(服务器套接字必须接受很多连接)我将 listen
的 backlock 值增加到 500。
尽管有这个设置,但在某些时候我可以看到- 我的客户端阻塞在一个名为 __connect_nocancel
的 pthread
函数中,这种情况发生了很多次。-过了一会儿,我的服务器开始接收无序数据。第一个困惑的数据是客户端阻塞的数据(随后是其他数据)。
我认为增加积压可能会解决这个问题,但事实并非如此。
你能帮帮我吗?我在 Linux 2.6.32
干杯
AFG
最佳答案
listen(2)
的积压参数通常限制为操作系统网络堆栈中的某个值。在 Linux 上,默认值为 128。
但真正的问题是,正如@EJP 所说,您完全错误地使用了 TCP。
关于linux - __connect_no_cancel block 和服务器获取数据乱序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12327176/
我是一名优秀的程序员,十分优秀!