套接字:看不到消息



我是一个python初学者,我正试图编写一个连接到其他设备的脚本。现在我正在尝试构建服务器,它必须接收消息。但是,如果我收到一条消息,我无法在Shell

中看到它。

代码如下:

import socket
HOST='**.**.**.**'
PORT=****
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
conn, addr = s.accept()
print('Connected by', addr)
while True:
    data = conn.recv(1024)
    if not data: break
    conn.sendall(data)
conn.close()
data = data.decode("utf-8")
print("Message: " + data)

如果文本长度不超过1024:

import socket
HOST='**.**.**.**'
PORT=****
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
conn, addr = s.accept()
print('Connected by', addr)
while True:
    data = conn.recv(1024)
    if not data: break
    data1 = data
    conn.sendall(data)
conn.close()
data1 = data1.decode("utf-8")
print("Message: " + data1)

conn.close()行之前,使用conn.shutdown(socket.SHUT_RD)。查看socket文档中的更多详细信息。

close():释放与连接相关的资源,但是不一定立即关闭连接。如果你想及时关闭连接,在此之前调用shutdown()close () .

最新更新