Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 插座:can';我看不见消息_Python_Sockets - Fatal编程技术网

Python 插座:can';我看不见消息

Python 插座:can';我看不见消息,python,sockets,Python,Sockets,我是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('Con

我是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.shuth\u RD)
。请参阅中的更多详细信息

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


在第
conn.close()行之前,使用
conn.shutdown(socket.shuth\u RD)
。请参阅中的更多详细信息

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


有错误吗?它打印什么东西吗?它只打印:“消息:”查看该部分:
如果没有数据:break
意味着循环中断时没有数据可打印如果我删除它,那么它什么也不打印是的,它会导致无限循环,因为你永远不会停止循环。您可以做的是在循环中收到消息时打印消息块,或者将它们保存在其他可变错误中?它打印什么东西吗?它只打印:“消息:”查看该部分:
如果没有数据:break
意味着循环中断时没有数据可打印如果我删除它,那么它什么也不打印是的,它会导致无限循环,因为你永远不会停止循环。您可以做的是在循环中收到消息时打印消息块,或者将它们保存在其他变量中