我有一个连接到python服务器的c程序,发送一个短字符串(少于约100个)然后关闭套接字 . 它定期执行此操作 .
python服务器接受连接,生成一个线程,并在该线程中调用:
data = sock.recv(4096)
数据通常都是空的 .
在阅读了python手册页和一些堆栈溢出帖子后(感谢大家!),我意识到问题是c程序打开,写入,关闭,套接字如此快,到python服务器接受时,如文档所述,生成线程,recv()不返回任何数据 .
问题是,我不知道这个问题的解决方法?我几乎无法控制c程序 . 即使另一方关闭连接,是告诉python缓冲recv()消息的方法吗?
(警告:我还没有在wireshark上验证我的预感,但两个程序中的日志都强烈表明c-program在大多数时间甚至调用recv()之前关闭 . )
谢谢 .