我想要用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
我现在要做的是实现一些东西,这样这个脚本也接受用户输入,在按下enter键之后,将其发送回客户机。
但我不知道怎么做?因为如果我这样做: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中使用过线程)