Сервер:
import socket
host = ""
port = 4242
backlog = 5
size = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host,port))
s.listen(backlog)
client, address = s.accept()
while 1:
data = client.recv(size)
if data:
client.send(data)
print(data.decode("utf-8"))
Клиент:
import socket
import sys
host = sys.argv[1]
port = 4242
size = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host,port))
while True:
line = input("What to say: ")
s.send(line.encode("utf-8"))
Ну, я немного запутался здесь.Я начинаю изучать сокеты, поэтому я начал с простого эхо-сервера.Код, который я разместил выше, прекрасно работает, когда сервер работает на Arch Linux или Ubuntu.Однако в Windows 7 он принимает только локальные соединения.Дело в том, что я не использую брандмауэр.Я не уверен, есть ли у Python отдельная реализация WinSock или что, но я запутался!Пожалуйста, если хотите, я прекрасно понимаю, что это ужасно разработано (принимает только на клиенте!), Но я просто хочу знать, почему Windows не будет принимать удаленные подключения.Arch и Ubuntu, я работаю на Python 3.1, а на Win 7 - на 3.2.