Я пытаюсь просто отправить список с одного компьютера на другой.
У меня настроен сервер на одном компьютере, где IP-адрес 192.168.0.101 Код сервера:
import socket
import pickle
import time
import errno
HEADERSIZE = 20
HOST = socket.gethostbyname(socket.gethostname())
PORT = 65432
print(HOST)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(10)
while True:
conn, adrs = s.accept()
print(f"Connection with {adrs} has been established")
conn.setblocking(1)
try:
data = conn.recv(HEADERSIZE)
if not data:
print("connection closed")
conn.close()
break
else:
print("Received %d bytes: '%s'" % (len(data), pickle.loads(data)))
except socket.error as e:
if e.args[0] == errno.EWOULDBLOCK:
print('EWOULDBLOCK')
time.sleep(1) # short delay, no tight loops
else:
print(e)
break
Клиент находится на другом компьютере. Код:
import socket
import pickle
HOST = '192.168.0.101'
PORT = 65432
def send_data(list):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(10)
print(".")
print(s.connect_ex((HOST, PORT)))
print(".")
data = pickle.dumps(list)
print(len(data))
s.send(data)
s.close()
send_data([1,1,1])
Выведенный номер ошибки connect_ex - 10035. Я много читал об ошибке, но все, что я нашел, было на стороне сервера. Мне кажется, что проблема в клиенте, и он не может установить соединение с 192.168.0.101. Но тогда я не понимаю, почему я получаю ошибку о неблокировании.
Что я делаю неправильно, что не могу отправить данные?