Недавно я взял Python и пытаюсь больше узнать о сети. Я столкнулся с проблемой, когда я пытаюсь одновременно слушать и отправлять данные, используя многопоточность. Вот код:
import socket
from threading import Thread
name = ""
s = socket.socket()
def Main():
print("What is your name?")
name = input("Name: ")
Connect()
def Connect():
host = '127.0.0.1'
port = 5000
s.connect((host, port))
Thread(target=Send()).start()
print("oh")
Listen()
def Listen():
while True:
data, addr = s.recvfrom(1024)
data = data.decode('utf-8')
if not data:
break
print(data)
def Send():
message = input(name + ": ")
while message != 'q':
s.send(message.encode("utf-8"))
message = input(name + ": ")
s.close()
Main()
Проблема в том, что когда создается Thread
, программа застревает в цикле while функции Send()
и никогда не вызывает функцию Listen()
. Я добавил функцию print()
для отладки того, происходит ли что-нибудь после создания потока.
Это результат, который я получил:
Как вас зовут?
Имя: ФлоуР
: тест
:
print()
- person FlowR   schedule 24.03.2018