Ошибка трассировки программирования сокета (последний вызов последний) - PullRequest
0 голосов
/ 19 октября 2018

Я пытаюсь реализовать простой интерфейс передачи сообщений между «клиентской» и «серверной» программой (на данный момент на одном компьютере) с использованием сокетного программирования в Python.Вот мой код как для клиента, так и для сервера:

#CLIENT
import os
from socket import *
host = "127.0.0.1" # set to IP address of target computer
port = 13000
addr = (host, port)
UDPSock = socket(AF_INET, SOCK_DGRAM)
while True:
    data = bytes(input("Enter message to send or type 'exit': "), 'utf-8')
    UDPSock.sendto(data, addr)
    if data == "exit":
        break
UDPSock.close()
os._exit(0)



#SERVER
import os
from socket import *
host = "127.0.0.1"
port = 13000
buf = 1024
addr = (host, port)
UDPSock = socket(AF_INET, SOCK_DGRAM)
UDPSock.bind(addr)
print("Waiting to receive messages...")
while True:
    (data, addr) = UDPSock.recvfrom(buf)
    print("Received message: " + data)
    if data == "exit":
        break
UDPSock.close()
os._exit(0)

Когда я отправляю сообщение от клиента, сервер быстро высвечивает ошибку «Отслеживание последнего вызова последним», а затем программа сервера закрывается.Этот код изначально был адаптирован из чего-то, что работало на Python 2, поэтому я внес небольшие изменения, но, возможно, я чего-то упускаю.Я довольно новичок в программировании сокетов в Python, поэтому любая помощь будет оценена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...