我正在一个项目中,该项目具有一个发布者和一个订阅者,并通过常规的TCP套接字连接进行连接。发布者以一定的速率生成消息,通过套接字发送它们,然后订阅者处理这些消息。没有消息队列,只有纯TCP套接字连接。问题在于,发布者中的套接字“写”方法在调用时似乎花费很长时间,这降低了发布者可以发送数据的速度。我一直在阅读有关套接字的内容,可以想到可能导致这种情况的两种情况:网络不够快,无法处理发送消息的发送速率。在这种情况下,我认为应该填充发布者上的套接字出站缓冲区。使用者处理消息的速度很慢,因此我希望使用者的入站缓冲区已满。(据我所知)这将导致套接字写方法阻塞。我仍在学习套接字编程,并且不确定上面的分析是否有意义。如果是这样,那么确定哪种情况的好方法可能是什么?需要注意的一件事是,使用者位于Linux机器上,而发布者是Windows机器。任何帮助,将不胜感激!
1 回答
莫回无
TA贡献1865条经验 获得超7个赞
您可以测量接收者在read()
或recv()
方法中花费了多少时间,或者它调用从网络读取的内容。
如果很少,则总是有数据存储,因此这是接收器读取速度慢的错误。
如果读取中阻塞的时间很长,则可能是网络速度过慢所致。
- 1 回答
- 0 关注
- 270 浏览
添加回答
举报
0/150
提交
取消