【发布时间】:2021-09-18 13:44:49
【问题描述】:
我创建了一个简单的 python 服务器,它将接收到的所有内容发回。
我想知道是否可以在将数据发送到客户端(网络浏览器)后立即关闭连接,然后客户端显示它收到的数据。目前,客户端显示连接已重置。
谢谢
#!/user/bin/env python3
import socket
HOST = 'localhost' # loopback interface address
PORT = 3000 # non-privileged ports are > 1023
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((HOST, PORT))
s.listen()
while True:
# connect to the next client in queue
conn, addr = s.accept()
with conn:
print('Connected by', addr)
data = conn.recv(1024).decode()
print(data)
conn.sendall(data.encode())
【问题讨论】:
-
可以,发送数据给客户端后可以立即关闭连接。
-
@PresidentJamesK.Polk 服务器可以关闭连接,但客户端显示连接已重置,而不是显示响应。
-
那么客户端有问题,但是我这里没有看到任何客户端代码。
-
当然,客户端和服务器都必须遵循相同的协议。如果你不这样做,一方或双方都会报错,就像这里发生的一样。 HTTP 是一个复杂的协议,你的服务器没有做任何远程接近 HTTP 的事情。