[英]nonstop server client connection[Python]
I want to create a server-client connection that the client can always be connected to the server.我想创建一个客户端可以始终连接到服务器的服务器-客户端连接。 How can I do it?
我该怎么做? Please help me.
请帮我。 when I was trying, this error occurred.
当我尝试时,发生了这个错误。 "ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host"
“ConnectionResetError: [WinError 10054] 现有连接被远程主机强行关闭”
- code - - 代码 -
server:服务器:
import socket
try:
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host,port))
s.listen(1)
conn, addr=s.accept()
while True:
conn.send(("Test message").encode())
print((conn.recv(1024)).decode())
except Exception as error:
print(str(error))
client:客户:
import socket
try:
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((server_host,port))
while True:
print((s.recv(1024)).decode())
s.send(("Test message").encode())
except Exception as error:
print(str(error))
Some reasons cause this error message:一些原因导致此错误消息:
Your code seems to be OK.您的代码似乎没问题。 Did you run the Server at first time then client?
您是第一次运行服务器然后是客户端吗? Please make sure it.
请确认。 The below code fully tested on my computer.
以下代码在我的计算机上经过全面测试。
import socket
HOST = '127.0.0.1' # (localhost)
PORT = 65432 # Port to listen on
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((HOST, PORT))
s.listen()
conn, addr = s.accept()
while True:
data = conn.recv(1024).decode()
if not data:
break
conn.send(data.encode())
import socket
HOST = '127.0.0.1' # Server's IP address
PORT = 65432 # Server's port
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
while True:
s.send(("Hi server, send me back this message please").encode())
data = s.recv(1024).decode()
print('(From Server) :', repr(data))
Note: Run the Server first then Client.注意:先运行服务器,然后运行客户端。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.