Я считаю, что 0.0.0.0 означает подключение из любого места, что означает, что вы должны разрешить порт 5555 через ваш брандмауэр.
введите описание изображения здесь
Вместо 0.0.0.0 используйте localhost в качестве адреса и на клиенте, и на сервере.
Я только что протестировал ваш код, используя localhost
для сервера, клиента и вашего программа работала.
сервер:
Connected to ('127.0.0.1', 53850)
Received: Hello this is a connection
клиент:
Received: Hello this is a connection
Как видите, все, что я изменил, это адрес как на сервере, так и на клиенте . Если это не сработает, значит, что-то вне вашей программы мешает вам добиться успеха. Это может быть проблема с разрешениями или другая программа прослушивает порт 5555.
server.py
# Server
import socket
HOST = "0.0.0.0"
HOST = "localhost"
PORT = 5555
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((HOST, PORT))
s.listen()
while True:
conn, addr = s.accept()
with conn:
print("Connected to", addr)
data = conn.recv(1024)
print("Received:", data.decode())
conn.sendall(data)
if __name__ == '__main__':
pass
client.py
# Client
import socket
HOST = "localhost"
PORT = 5555
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
s.sendall(b"Hello this is a connection")
data = s.recv(1024)
print("Received:", data.decode())
if __name__ == '__main__':
pass