Просто новичок здесь.Клиент отправляет сообщение на сервер, используя sendto()
, которое сервер может получить, используя recvfrom()
.Проблема возникает, когда сервер пытается отправить сообщение клиенту.Код клиента застревает на indata, add = sock.recvfrom(1024)
.Почему именно это происходит?
КОД СЕРВЕРА:
import socket
port = 8000
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
address = ('127.0.0.1',port)
try:
s.bind(address)
except socket.error as e:
print(e)
while True:
data, add = s.recvfrom(1024)
break
print(data.decode(), add)
fin = open("send.txt")
senddata = fin.read()
print(senddata)
try:
s.sendto(senddata.encode(),address)
except socket.error as e:
print(e)
s.close()
КОД КЛИЕНТА:
import socket
sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
port = 8000
msg = 'hello server'
sock.sendto(msg.encode(),('127.0.0.1',port))
while True:
indata, add = sock.recvfrom(1024)
break
f = open("received.txt", 'w')
f.write(indata.decode())
sock.close()
Следует ли использовать несколько портов, если клиент и сервер работают на одном компьютере?