我有一个连接到python服务器的c程序,发送一个短字符串(少于约100个)然后关闭套接字 . 它定期执行此操作 .

python服务器接受连接,生成一个线程,并在该线程中调用:

data = sock.recv(4096)

数据通常都是空的 .

在阅读了python手册页和一些堆栈溢出帖子后(感谢大家!),我意识到问题是c程序打开,写入,关闭,套接字如此快,到python服务器接受时,如文档所述,生成线程,recv()不返回任何数据 .

问题是,我不知道这个问题的解决方法?我几乎无法控制c程序 . 即使另一方关闭连接,是告诉python缓冲recv()消息的方法吗?

(警告:我还没有在wireshark上验证我的预感,但两个程序中的日志都强烈表明c-program在大多数时间甚至调用recv()之前关闭 . )

谢谢 .