【发布时间】:2011-03-29 00:40:00
【问题描述】:
我在 FTP 实现中打开的数据套接字上使用 write() 来发送文件。但是在写入一些数据之后它会挂起一段时间;之后它返回 Broken pipe 错误。对此的任何帮助将不胜感激。我的进程从一个缓冲区读取数据包并写入套接字。我注意到带宽增加的这个问题。如果我增加了要处理的数据包数量,那么问题就来了。我正在使用 FreeBSD。
我正在使用两个线程,一个读取数据包并写入缓冲区...第二个线程从缓冲区读取这些数据包并写入套接字。
感谢您的帮助 亚历山大
【问题讨论】:
-
您没有提供足够的信息来诊断问题。一个好的起点是演示问题的最小可编译代码段。
-
我正在使用两个线程,一个读取数据包并写入缓冲区...第二个线程从缓冲区读取这些数据包并写入套接字。
-
我想知道你为什么要使用线程?通常程序只是读写,使用非阻塞 IO 和轮询或选择。线程会工作,但会为比赛和奇怪的错误带来很多机会......
-
我正在研究多线程实时环境,其中每个线程都是一个硬件线程。所以我别无选择。