python socket 多執行緒實現

2021-10-09 10:02:51 字數 1600 閱讀 7942

近期需要用到socket協議進行hilenskit與ubuntu系統進行資訊傳輸,同時需要用到多執行緒保證主線程不受到影響。

主要內容包括socket語法、python多執行緒

socket.socket([family[, type[, proto]]])
通過該函式建立乙個socket類

family包括af_unix或者af_inet,常用af_inet

host = '' # 不輸入為預設本地位址,需要通訊的時候統一位址

port = 7777 # 自定義埠號

bufsize = 1024

socket_3399 = socket(af_inet,sock_stream)

socket_3399.bind((host,port))

socket_3399.listen() # 開始監聽

為了實現客戶端斷開後仍然能重連,需要心跳檢測,若客戶端斷開,應重新監聽

connection, _ = socket_3399.accept()

while true:

try:

connection.recv(1024) # 心跳檢測

data = socketencode(labelname)

socketsendmsg(connection, data)

except connectionreseterror: # 若斷開等待重新連線

connection, _ = socket_3399.accept()

def talker():

host='' # 自定義,需與伺服器端相同

port=7777

s=socket.socket(af_inet,sock_stream)

s.connect((host,port))

while true:

data=s.recv(1024)

print(data)

s.send(data.encode('utf-8'))

s.close()

python3利用threading庫引入thread類實現多執行緒(但是不是真的多執行緒,python貌似無法實現多執行緒)

def run():

index = 0

while true:

index += 1

print(index)

def socket_run(): #實現伺服器端socket建立的函式

thread類需要引入的屬性包括target(目標函式),args(目標函式引數,必須以tuple的格式傳輸)

thread1 = threading.thread(target=run)

thread2 = threading.thread(target=socket_run)

thread1.start()

thread2.start()

這就是乙個小demo的核心內容。

另外須注意的是python多執行緒如果想要實現資料傳輸,需要定義全域性變數。

使用python socket多執行緒實現大檔案分發

一 伺服器端 usr bin env python coding utf 8 environment 2.7 在python3中,模組不是socketserver,而是socketserver import os,json,time,socketserver,threading file path ...

多執行緒 多執行緒原理

我們首先要知道什麼是多執行緒,說白了就是多個執行緒,執行緒是什麼呢,其實就是程序執行的途徑,那麼說道這裡我們又引入了乙個新的名字,就是程序,那麼我們來看看什麼是程序,其實我們自己也能看到,啟動電腦的任務管理器,我們就可以看到程序選項,裡面是我們電腦所有的程序,我們會發現有很多的程序.簡單地說就是程序...

多執行緒(一) tomcat 多執行緒

web server允許的最大執行緒連線數還受制於作業系統的核心引數設定,通常windows是2000個左右,linux是1000個左右。1.編輯tomcat安裝目錄下的conf目錄下的server.xml檔案 maxthreads 150 表示最多同時處理150個連線,tomcat使用執行緒來處理...