感谢是否有人可以帮我找到更好的解决方案...
在我的应用程序中,linux机器上有一个TCP客户端(C)和其他TCP服务器(S)。
在生产环境中,在高负载时,此服务器有时会停止接收来自客户端的请求,因此会为客户端创建瓶颈,因为客户端是阻塞套接字。要在本地重新创建问题..我放置一个负载并将服务器放在GDB上这样就可以重新创建问题了。
任何人都可以建议一些其他机制来阻止套接字而不会干扰进程吗?
答案 0 :(得分:0)
你想听到什么?如果服务器繁忙,也就是说,正在为其他进程提供服务,因为它们也会通过调度程序获得时间片的一部分,除了提高程序的优先级/时间片长度或降低它们的长度之外,你无能为力。
请注意,TCP实现通常使用套接字缓冲区,以便当进程当前忙于处理数据或等待下一个时间片时,某些传输可能继续发生。
你有一些代码要显示吗?
答案 1 :(得分:0)
Can anyone suggest some other mechanism to block the socket wihout
扰乱了这个过程?
在单独的线程中进行连接,以便不阻止整个过程
答案 2 :(得分:0)
我没有明白这一点,但我猜你已经实现了一个被阻止的tcp服务器。 如果这是真的,那么可能有一些方法可以解决它