近期需要用到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使用執行緒來處理...