我正在Python上開發一個TCP客戶端,我有下一個問題。我連接服務器,發送一些數據,它會以預期的數據響應我,但在此之後,我自己的應用程序(客戶端)發送[FIN,ACK](使用wireshark進行檢查)。這是我的客戶端應用程序:客戶端Python關閉我的TCP連接沒有socket.close()
try:
sock = socket(AF_INET, SOCK_STREAM)
sock.bind((my_ip,my_port))
sock.connect((sendAddress,sendPort))
sock.send(joinRequest)
joinResponse = sock.recv(18)
print joinResponse
except socket.timeout:
sock.close()
如果刪除了異常處理socket.timeout會發生什麼? – goncalopp
該代碼收到回覆並將其打印出來。那麼沒有更多的代碼,也許你的應用程序結束了,這將關閉套接字?你想要你的應用程序做什麼? – nos
goncalopp:發生這種情況時,發送ack到服務器後關閉連接。 nos:我想保持TCP連接處於活動狀態,因爲它必須始終收回併發送數據。這是一個P2P應用程序,servent(服務器,我想連接)給我的接受連接網絡,然後,它必須連接所有的時間...我已經嘗試過SO_KEEPALIVE,但我的客戶關閉連接以及... –