Я изучаю сетевое программирование и хотел бы написать простой чат командной строки в Python.
Мне интересно, как сделать приемник постоянным вместе с вводом доступных для отправки в любое время.
Как вы видите, этот клиент может выполнять только одно задание за раз:
from socket import *
HOST = 'localhost'
PORT = 21567
BUFSIZE = 1024
ADDR = (HOST, PORT)
tcpCliSock = socket(AF_INET, SOCK_STREAM)
tcpCliSock.connect(ADDR)
while 1:
data = raw_input('> ')
if not data: break
tcpCliSock.send(data)
data = tcpCliSock.recv(BUFSIZE)
if not data: break
print data
tcpCliSock.close()
Поэтому, если другой клиент отправит сообщение, этот клиент получит его только после отправки сообщения. Держу пари, ты меня понимаешь. Я искал этот вопрос и узнал много интересного, такого как асинхронный ввод-вывод, потоковая передача, неблокирующая синхронизация, параллельное программирование и так далее. Я также установил скрученный пакет. Короче говоря, я все это изучал, но пока не нашел того, что искал. (Конечно, я буду продолжать пытаться и пытаться, пока не дойду до сути.)
Итак, мой вопрос - как это сделать? =)