資源簡介
把Client做成了一個類,實現了Client、Server,發送、接收接口(可發送和接受多行數據),自動重連,心跳檢測,Python多線程執行兩個while循環(發送,接收)

代碼片段和文件信息
#?coding=utf-8
#?!/usr/bin/python3
#?文件名:server.py
?
#?導入?socket、sys?模塊
import?socket
import?sys
import?time
?
#?創建?socket?對象
server_socket?=?socket.socket(
????socket.AF_INET?socket.SOCK_STREAM)
?
#?獲取本地主機名
host?=?socket.gethostname()
?
port?=?9998
?
#?綁定端口
server_socket.bind((host?port))
#?在服務器端開啟心跳維護value設置為1,表示將SO_REUSEADDR標記為TRUE,操作系統會在服務器socket被關閉或服務器進程終止后馬上釋放該服務器的端口,否則操作系統會保留幾分鐘該端口。
server_socket.setsockopt(socket.SOL_SOCKET?socket.SO_KEEPALIVE1)
#?設置最大連接數,超過后排隊
server_socket.listen(5)
?
while?True:
????#?發送數據
????#?建立客戶端連接
????print(“Server開始連接Client“)
????client_socket?addr?=?server_socket.accept()??#?accept會造成阻塞
????print(“連接地址:?%s“?%?str(addr))
????print(“Server開始發送數據“)
????#?三引號實現多行字符串
????msg?=?“““?\n????Python具有豐富和強大的庫。它常被昵稱為膠水語言,能夠把用其他語言制作的各種模塊(尤其是C/C++)很輕松地聯結在一起。
????常見的一種應用情形是,使用Python快速生成程序的原型(有時甚至是程序的最終界面),然后對其中有特別要求的部分,用更合適的語言改寫,比如3D游戲中的圖形渲染模塊,性能要求特別高,就可以用C/C++重寫,而后封裝為Python可以調用的擴展類庫。
????需要注意的是在您使用擴展類庫時可能需要考慮平臺問題,某些可能不提供跨平臺的實現。“““
????#?r讓\r\n原樣輸入,而不是換行符
????msg?=msg?+?r“\r\n“
????#?發送之前要用encode()編碼成utf-8
????client_socket.send(msg.encode())
????#?接受數據
????print(“Server開始接收數據“)
????get?=?client_socket.recv(1024)
????print(get.decode())
?
????time.sleep(3)
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1992??2018-08-03?10:21??Server.py
?????文件???????3525??2018-08-03?10:15??多線程Client.py
-----------?---------??----------?-----??----
?????????????????5517????????????????????2
評論
共有 條評論