我有两个带套接字连接的进程。 一个过程是将一个东西写入套接字然后关闭连接。 另一个进程等待侦听,当连接被接受时,它进入一个'read'循环,这样它就会从第一个进程获取消息并做任何与它有关的事情,然后等待来自第一个进程的其他消息。 当第一个过程关闭时,第二个过程一遍又一遍地读取同一个消息,当然,一次又一次地做任何与它有关的事情。 什么事发生在这里,我如何通过它?
答案 0 :(得分:2)
您必须忽略EOS条件,并且可能完全忽略read()返回的值。它返回一个正字节数,或者在EOS时返回零,或者在出错的情况下返回-1,伴随着errno。如果你得零,你必须关闭插座并停止阅读;如果你在大多数情况下得到-1同上;如果得到正字节数,则必须只处理读缓冲区中的那么多字节。
答案 1 :(得分:0)
很难说没有手头的代码,但我总是根据Beej's guide编写我的套接字代码,它永远不会失败。也许你可以在那里找到答案。