2路通信我想在Python雙向通信:插座:在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線程)
(沒有解決您的PROB LEM)'bool'是一種內置類型,您可以覆蓋它,因此您可能想要使用不同的變量名稱。一個更好的解決方案可能是'while True'與'break'結合。 –
你想發送每一個字符嗎?還是全文? –
@ wal-o-mat全文 –