так что у меня есть этот серверный сценарий, который я написал, который должен получить имя пользователя и затем перейти к другому кодуНо я получаю эту ошибку:
"OSError: [WinError 10057] Запрос на отправку или получение данных был отклонен, поскольку сокет не подключен и (при отправке на сокете дейтаграммы с использованием вызова sendto) нетадрес был указан "
Моя теория заключается в том, что сервер и клиент не синхронизированы, поэтому сервер считает, что не получает сообщение.Как я могу улучшить свой код, чтобы сервер действительно получил сообщение?(Я пробовал блокировать попытку)
Мой код:
import socket
port = int(input("Server port: "))
try:
socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
socket.bind(("localhost",port))
socket.listen(1)
except Exception:
print("error while starting server")
input()
exit()
def receive(con,buffer):
return str(con.recv(buffer).decode())
while True:
con,ip = socket.accept()
print(str(ip) + " Connected!")
username = receive(socket,1024) # <-- error
#other code
socket.close ()
Код клиента:
import socket
ip = input("Server IP: ")
port = int(input("Server port: "))
socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
try:
socket.connect((ip,port))
except Exception:
print("Error while connectine to the server!")
input()
exit()
def send(s,msg):
s.send(bytes(msg,"utf-8"))
username = input("Username: ")
send(socket,username)
# other code
socket.close()