2011-10-31 85 views
0

我有两个使用套接字连接的进程。 一个进程将一件事写入套接字,然后关闭连接。 其他进程等待在听,当连接接受,它进入的“读”所以它会从第一个过程从第一个得到消息,并尽一切有什么关系,和其它消息后等待一环处理。 当第一个过程是封闭的,第二个过程是一遍又一遍地读相同的消息,当然,做任何它用它做,一次又一次.. 请告诉我这里发生以及如何传递呢?C中的Unix套接字读取套接字中的环路

+0

这听起来像您的阅读代码中的错误(错误/不处理EOF)。请张贴从套接字读取的代码。 – DarkDust

回答

0

很难说没有手头上的代码,但我一直写基于Beej's guide我的套接字代码和它永远不会失败。也许你可以在那里找到你的答案。

2

您必须忽略EOS条件,并可能忽略read()返回的值。它返回一个正数字节计数,或者EOS为零,或者在伴随errno错误时返回-1。如果你得到零,你必须关闭插座并停止阅读;如果在大多数情况下得到-1同上;如果得到正数字节数,则只能在读缓冲区中处理那么多字节。