Я хочу двустороннюю связь в Python:
Я хочу привязать сокет, к которому может подключиться один клиент, а затем сервер и клиент могут «общаться» друг с другом.
У меня уже есть основной слушатель:
import socket
HOST='' #localhost
PORT=50008
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM ) #create an INET, STREAMing socket
s.bind((HOST,PORT)) #bind to that port
s.listen(1) #listen for user input and accept 1 connection at a time.
conn, addr = s.accept()
print "The connection has been set up"
bool=1
while bool==1:
data=conn.recv(1024)
print data
if "#!END!#" in data:
print "closing the connection"
s.close()
bool=0
Что я хочу сейчас сделать, так это реализовать что-то, поэтому этот сценарий также принимает пользовательский ввод и после нажатия клавиши ввода отправляет его обратно клиенту.
Но я не могу понять, как я могу это сделать? Потому что, если бы я сделал это так:
while bool==1:
data=conn.recv(1024)
print data
u_input = raw_input("input now")
if u_input != "":
conn.send(u_input)
u_input= ""
Проблема заключается в том, что он, вероятно, зависает при вводе запроса пользователем, поэтому он не позволяет моему клиенту отправлять данные.
Как мне решить это?
Я хочу сохранить это в одном окне, это можно решить с помощью потоков?
(я никогда не использовал потоки в python)