我在Python中使用套接字,试图找出如何检查代码中是否有传入消息。如果有传入消息,我需要打印它。如果没有传入消息,则只会写“无数据”
我尝试检查是否为if条件,但它不起作用:
import socket
import time
#AG AYARLARI
HOST = ''
PORT = 16000
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind((HOST,PORT))
#AGI BASLATMA
s.listen(1)
conn, addr = s.accept()
i=0
print('I:::',i)
print('Connected by', addr)
while True:
data=conn.recv(1024)
if data:
print(data)
else:
print (str.encode('No data'))
break
如果有消息请采取:“消息”
如果不是:“无数据”
答案 0 :(得分:1)
尝试使用select
:
import select
timeout = 10 # in seconds
ready_sockets, _, _ = select.select(
[conn], [], [], timeout
)
if ready_sockets:
data = conn.recv(1024)
print(data)
else:
print('No data')