open_sockets = []
listening_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
listening_socket.bind(("", 1234))
listening_socket.listen(5)
while True:
rlist, wlist, xlist = select.select([listening_socket] + open_sockets, [], [])
for i in rlist:
if i is listening_socket:
new_socket, addr = listening_socket.accept()
open_sockets.append(new_socket)
else:
data = i.recv(1024)
if data == "":
i.close()
open_sockets.remove(i)
print "Connection closed"
else:
i.send(data)
print repr(data)
現在我知道這是簡單的服務器代碼,可以處理一些客戶 - 我不明白的唯一事情是這兩行:的recv()在Python
data = i.recv(1024)
if data == "":
我明白當客戶端已經接受它時會轉到另一個選項,該選項檢查緩衝區中是否存在某些內容。我不明白爲什麼,當沒有什麼緩衝區,如此下去,不檢查線路:
if data == "":
但是當客戶只需按下回車鍵,相當於""
它斷開
爲什麼在沒有任何東西被按下時它不是和""
一樣?
要如果提供的答案中的任何一個回答了您的問題,請務必接受答案。這是一個很好的方式來感謝對本網站有貢獻的人們。如果您的問題未得到解答,請隨時發表評論。謝謝! – GargantuChet