下面的代碼給我的問題:Python的服務器瞬間斷開
def connect():
s.listen(2)
print("Server listening")
conn,addr=s.accept()
print("Connected with " + str(addr) + '\n')
recv()
def recv():
while 1:
try:
print("Starting try statement")
data=conn.recv(1024)
if data == "":
print("No data")
recv()
else:
print("Data")
print(data.decode('UTF-8') + " -END")
recv()
except:
print("No connection")
connect()
conn.close()
當我執行的代碼,它會連接到客戶端,並準備在任何時候接收消息。但是,一旦執行它就會出現。
Server listening
Connected with ('xx.xxx.xxx.xx', xxxxx)
Starting try statement
No connection
Server listening
IP審查。有沒有人有這方面的修復?
編輯:錯字
客戶端代碼(從使用TKinter GUI)
s.connect((host,port))
self.chatlog['state'] = NORMAL
self.chatlog.insert(END, ("===CONNECTED TO SERVER\n"))
self.chatlog['state'] = DISABLED
self.chatlog.yview(END)
self.conn=True
print("Connected")
這段代碼看起來很糟糕。從'while 1'循環中,並遞歸調用自己? – user590028
「conn」和「connect」名稱是指什麼?你能提供一個最小的可運行示例嗎? – Bach
是的我正在使用遞歸,因爲一旦收到數據,我希望服務器準備好接收更多。 – QuarterGeekster