我有一個使用 TCP 和 UDP 套接字的套接字客戶端,即使我沒有關閉套接字連接,但是,當我完成腳本的執行時,連接斷開了如何保持連接始終打開,
這是代碼:
import socket
import sys
import time
HOST = "163.173.96.12" # Standard loopback interface address (localhost)
PORT = 32000 # Port to listen on TCP/IP
PORT1 = 32001 # Port to listen on UDP/IP
#TCP/IP
try:
client_tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcp_server_address = (HOST, PORT)
except:
print("Cannot find server TCP")
finally:
client_tcp.connect(tcp_server_address)
print('Connection TCP sucessful')
#UDP/IP
try:
client_udp = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udp_server_address = (HOST, PORT1)
except:
print("Cannot find server UDP")
finally:
client_udp.connect(udp_server_address)
print('Connection UDP sucessful')
try:
for i in range(1,11):
texte = "PING\n"
client_tcp.send(texte.encode())
data=client_tcp.recv(1024).decode('utf-8')
print("Received ", str(data))
except:
print("error occur")
finally:
#client_tcp.close()
#client_udp.close()
print('Closed')
謝謝
uj5u.com熱心網友回復:
套接字已關閉,因為當您到達程式末尾時,行程死亡,然后作業系統會看到行程未使用的資源(套接字),因此它將它們洗掉。
為了防止這種情況,您需要防止行程死亡。因此,在程式末尾添加其中之一,它不會關閉,保持套接字打開:
input("Press enter to close")
from threading import Event
Event().wait()
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/471937.html
