python基於多執行緒的TCP多工伺服器

2021-10-05 00:21:12 字數 1087 閱讀 4875

import socket

import threading

def recv_msg(new_socket):

while true:

# 阻塞的接收資料

recv_data = new_socket.recv(1024)

if recv_data:

# 接到的值decode

recv_txt = recv_data.decode('gbk')

print(recv_txt) # 這個便是接到的資料值

else:

# 當沒有資料的時候就跳出迴圈,退出接收狀態

break

# 關閉連線

new_socket.close()

if __name__ == "__main__":

# 開啟socket套接字

tcp_server_socket = socket.socket(socket.af_inet, socket.sock_dgram)

# 設定位址可以重用

tcp_server_socket.setsockopt(socket.sol_socket, socket.so_reuseaddr, true)

# 繫結7788埠

tcp_server_socket.bind(("", 7788))

# 主動模式調整為被動模式,監聽連線數最大為128

tcp_server_socket.listen(128)

while true:

# 接收客戶端連線

new_socker, ip_post = tcp_server_socket.accept()

print(ip_post) # 檢視連線過來的客戶端ip和埠

# 開啟執行緒

t1 = threading.thread(target=recv_msg, args=(new_socker,))

#設定執行緒守護

t1.setdaemon(true)

t1.start()

# 將不再收到新的請求

tcp_server_socket.close()

根據學習資料整合**

TCP 多執行緒 (python)

author han zhang date 2018 12 23 10 21 file server.py ide pycharm import socket,threading def c thread s client,addr print addr,成功連線 列印連線者位址資訊 while t...

基於TCP的Socket通訊 多執行緒

中引用的頭函式 include include include pragma comment lib,ws2 32.lib 伺服器端 1.初始化socket環境,建立套接字 wsadata wsadata word wversionrequested makeword 2,2 將兩個byte型合成乙...

基於Linux多執行緒的併發TCP服務

經過兩天的學習,終於做出來可以向指定客戶端傳送資料的tcp服務,寫本次博文的目的有二,一是將學習成果分享給正在學習tcp併發服務的同行,二是整理一下筆記,方便日後複習。首先說一下為什麼學習tcp併發服務,6個月前去面試嵌入式軟體工程師的面試題是 用兩個半小時的時間用任意語言編寫乙個可以兩個及兩個以上...