要實現(xiàn)socket服務端主動關閉,可以使用以下代碼:
import socket
import sys
def main():
# 創(chuàng)建一個socket對象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server_socket.bind(('0.0.0.0', 8080))
server_socket.listen(5)
while True:
# 接受客戶端連接
client_socket, addr = server_socket.accept()
print(f"客戶端 {addr} 已連接")
# 接收數(shù)據(jù)并處理
data = client_socket.recv(1024)
print(f"收到數(shù)據(jù): {data}")
# 主動關閉連接
client_socket.close()
# 發(fā)送關閉消息給客戶端
client_socket.sendall(b'\x00\x00\x00\x00')
# 清理資源
server_socket.close()
if __name__ == '__main__':
main()
這段代碼創(chuàng)建了一個TCP服務器,監(jiān)聽8080端口。當有客戶端連接時,它會接收客戶端發(fā)送的數(shù)據(jù),然后發(fā)送一個空字節(jié)序列作為關閉信號,最后關閉連接。
本文內(nèi)容根據(jù)網(wǎng)絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權,聯(lián)系刪除。