近期需要用到socket协议进行hilenskit与ubuntu系统进行信息传输,同时需要用到多线程保证主线程不受到影响。
主要内容包括socket语法、python多线程
python socket基本语法
socket.socket([family[, type[, proto]]])
通过该函数创建一个socket类
family包括AF_UNIX或者AF_INET,常用AF_INET
服务器端socket创建
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()