Есть 3 файла кода Python, A, B и C.
A отправляет сообщение B, а B принимает его и пересылает его C, получает и распечатывает. Все 3 из них используют протокол UDP. Я знаю, что мне нужно изменить только несколько строк, но я не могу понять это.
B не связывается с A, и A отправляет сообщение C напрямую. Я получаю ошибки хоста, потому что у меня проблемы с их соединением.
Обратите внимание, необходимо изменить только часть B, но для справки я включил части A и C.
Часть A:
import socket
import sys
if len(sys.argv) != 3:
print("Useage: python " + sys.argv[0] + " <ip> <listen port>")
sys.exit(-1)
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
while True:
print("Input text:")
text = sys.stdin.readline().strip()
s.sendto(text,(sys.argv[1],int(sys.argv[2])))
if text == "bye":
break
Часть B:
import socket
import sys
if len(sys.argv) != 2:
print("Useage: python " + sys.argv[0] + " <listen port>")
sys.exit(-1)
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(("0.0.0.0", int(sys.argv[1])))
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(("0.0.0.0", int(sys.argv[1])))
print("Waiting..")
while True:
data, addr = s.recvfrom(1024)
s.sendto(data,(sys.argv[1],int(sys.argv[2])))
if data == "bye":
break
Часть C:
import socket
import sys
if len(sys.argv) != 2:
print("Useage: python " + sys.argv[0] + " <listen port>")
sys.exit(-1)
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(("0.0.0.0", int(sys.argv[1])))
print("Waiting..")
while True:
data, addr = s.recvfrom(1024)
data = data.decode("utf-8").replace("\0","")
print data
if data == "bye":
break