这是我的一段代码,不需要的代码是隐藏的。你知道吗
if sock_active:
r,w,x=select.select([conn],[],[],0.1)
if r:
try:
logging.debug("Waiting for socks")
sockdata=conn.recv(BUF_SIZE)
logging.debug("Recevied data")
if sockdata is None:
raise ConnectionError("socket closed")
else:
recvcache+=sockdata.decode()
logging.debug("Network Cache:%s"%recvcache)
现在的问题是,当套接字接收到一次数据时,它会连续输出“Waiting for socks”、“received data”和“Network Cache:”
我理解错什么了吗?你知道吗
==更新==
因此可以“选择”长度为零的消息。我想做的是接收不长度为零的消息,我该怎么办?在recv
阻塞线程和recv
获取零长度消息之间有什么区别吗?你知道吗
其他信息:
我使用sock.listen()
创建一个侦听套接字并接受来自客户端的连接,然后启动一个新线程并将已接受的套接字传递给新线程。所有消息都以\n
结束。我期望得到的是<COMMAND> <ARGS>\n
谢谢。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐