日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

2021-12-19 老杨博客推荐\TCP像串口的多程编写的一个弱鸡版本类MQTT的TCP实现\字典值查键\微PYTHON与PYTHON的JSON区别\以及一个ESP32领导多个ESP8266组网模式

發布時間:2023/12/20 python 36 豆豆

都說程序員最拿手的好戲是復制粘貼,對于這件事我也是深以為然,遇到問題先看看別人,有么有寫好的,沒有寫好的看看類似的,實在不行繼續百度群里問問,最后再自己操刀上吧,microPython作為小眾的控制器編程模式熱度逐步提高,但是普遍水平不高,大部分都是二把刀,三把刀的樣子很是娛樂性質,那我先推一推老楊的博客,他算是整的比較系統的了,雖然GIT里邊沒啥注釋,代碼也寫的比較生硬,好在內容很雜總能翻找一些資料,我個人比較喜歡寫博客類似寫日志的記錄一些內容。因為工作多年了,都是PLC WEB 嵌入式 還有政工寫材料 這么個工作來回交替,所以我就是為了講給新學的甚至是幾年后的自己聽的,下面是老楊的博客跳轉頁面推薦~

老楊的推廣連接


連接推廣完畢了,下面先來個ESP32以及PC通用的像串口一樣的TCP方法庫,因為服務器與客戶端都使用了線程模塊所以8266是不能用這個庫的。庫里有我的一些修改,以及思路擴展。

先研究研究像串口一樣使用TCP這個庫:并寫下自己的修改和注釋

import socket import _thread#使用demo # from mytcp import * # ip='127.0.0.1' # port = 8081 # server = mytcp_server(ip,port) # # client = mytcp_client(ip,port) # # ############# # client.write(b'\x01\x02') # server.read(0) # # server.write(0,b'\x04\x06') # client.read() # # server.name_addr #獲取已經連接ip與ID對應列表,當服務器主動斷開時這個列表會更新,客戶端斷開掉線則這個列表不會更新,默認是不掉線的 # 如果是服務器只拿數據的情況比如溫度測量,我們不用關心誰連接過來,只要解析報文內容既可以知道。 # 但如果服務器需要通信就必須知道對方是誰,尤其是客戶端之間要互相中專通信時尤其如此, # 設計這個列表,為了把ID號與IP號進行一次對應。其實這只完成了一半,另一半需要在客戶端發過 # 來內容時送來{ip:設備名}再進行一次字典對應,因為局域網連接中IP是相對可靠的所以都是以IP為鍵再建立一個字典實現綁定 # 這里,因涉及到業務邏輯,所以需要留到具體的業務時再實現,無法事先弄好。 # 另外,因為是線程式的工作模式,需要主動輪詢ID號來讀取內容,這一點也需要確定哪些號有設備接入,所以這個玩意還真得有個 # #業務模式: ##以下功能是業務擴展思路,并不是函數功能,因涉及到具體業務支持所以只作為提醒記錄 #1、設備名》服務器: 服務器記錄下設備名字,就可以了 【發出設備名,服務器名,信息】 #2、設備名》設備名: 服務器根據接收信息: 【發出設備名 , 接收設備名, 信息】,執行:解析目標設備名,查找Id號再把初始信息原封傳過去 #3、服務器》設備名: 服務器根據設備名查找IP,再根據IP 找ID發送 【服務器名,接收設備名,信息】 # # # client.close() # server.close(0)class mytcp_core():def __init__(self,conn,uid):self.uid= int(uid)-1self.read_buf=b''self.conn = connself.thread_flag = 1_thread.start_new_thread(self.read_thread,())def read(self):temp = self.read_bufself.read_buf=b''return tempdef read_thread(self):while 1:if self.thread_flag==0:breaktry:ret = self.conn.recv(1024)# print(ret)self.read_buf += retexcept:print("closed",self.uid)self.conn.close()break #退出def write(self,context): #bytesself.conn.send(context)print(len(context))def close(self):self.thread_flag =0self.conn.close()class mytcp_client():def __init__(self,ip,port):self.conn = socket.socket()self.flag = 0 #運行狀態try:self.conn.connect((ip,port))print("connected")self.tcp_core = mytcp_core(self.conn)self.flag = 1except:print("cannot connect")def read(self):if self.flag == 1:return self.tcp_core.read()else:print("cannot connected")returndef write(self,context):if self.flag == 1:return self.tcp_core.write(context)else:print("cannot connected")returndef close(self):self.tcp_core.close()return "OK"class mytcp_server():def __init__(self,ip,port,listen_num=5):self.listenSocket = socket.socket()self.name_addr=dict()self.socks = [] # 放每個客戶端的socketself.socks_tcp_core = []self.socks_addr = [] # addr listtry:self.listenSocket.bind((ip,port))self.listenSocket.listen(listen_num)_thread.start_new_thread(self.listen_add,())except:print("cannot connect")# 添加連接def listen_add(self):print("listening...")while True:try:cli, addr = self.listenSocket.accept()print("get "+(str)(len(self.socks))+":"+str(addr[0]))##################################################當連接傳入時:存入字典,以IP為主鍵,ID為值self.name_addr[str(addr[0])]=str(len(self.socks))##################################################self.socks.append(cli)self.socks_addr.append(addr)self.socks_tcp_core.append(mytcp_core(cli,str(len(self.socks))))except:passdef read(self,id):try:return self.socks_tcp_core[id].read()except:returndef write(self,id,context):try:return self.socks_tcp_core[id].write(context)except:returndef close(self,id):try:self.socks_tcp_core[id].close()self.socks[id].close()for k,v in self.name_addr.items():# 展開字典if v == str(id): #值等于要刪除值時del self.name_addr[k] #刪除這個字典鍵值對return "OK"except:return s=mytcp_server('192.168.3.190',9999)

下面是一個根據字典值查找鍵的內容,這里值必須是字典唯一的,不能多建一值,畢竟設備號和IP號在同一時間下都應該是唯一的。

for k,v in self.字典.items():# 展開字典if v == 要找的值: #值等于要查找的值=del self.name_addr[k] #執行刪除這個字典鍵值對

上面說了不支持8266 ,那8266怎么辦,其實8266就更簡單了,因為沒有線程所以就是普通的TCP客戶端拉手就行了。只能做客戶端,但是作為8266其實就是適合當客戶端,非要當服務端,那就老老實實的普通TCP建立吧。

import socket,time s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect(('192.168.3.190',9999)) #看清楚是兩層括號 里邊是IP ,端口 s.send(b'12312312') ccc=s.recv(5)

ESP32 領一群8266,其實這個方案也是不錯的,ESP32勉強可以勝任,帶它10來個8266傳感器繼電器也能做一些功能了。下面就簡單寫一個設備到服務器,所有設備都提交數據到服務器的星型結構的例子,原則是能跑就行的。注釋好不容易寫的都留著。

下面是服務端了,這個服務器支持 [本機設備號,收取設備號,本機消息] 這么個格式,連接上以后按照這個格式發json就可以用了。

服務器端ESP32:寫在前面,ESP32絕對能完成這個功能,但是性能在那擺著呢,當主控服務器穩定性肯定不怎么地,一般來說可以掛載至多5個線程連接,再多了可靠性下降可能也要無響應了,網絡建立也可能會失敗這是概率性事件。連接服務器的客戶端可能會掉線也是概率性事件,這需要在客戶端位置寫好重連,客戶端多次連續取出b’None’這個值就可以認為要求數據的設備離線了,寫好判斷即可,總之,功能可測試娛樂使用,日常生產環境如果開發人員持續在場可以使用,否則慎用。非得要用更推薦PC加路由器建立熱點然后,傳感器去連接這個熱點的PC服務器,起碼來說資源充足,連接相對穩定覆蓋距離也大。以下ESP32代碼是我多次測試修改的,所以功能呢相對PC版本要多一些,同時也測試出了不足,PC版本服務器參照ESP32這個邏輯改改就行。下面的PC服務器直接用的話需要補充兩點:1、超時斷開 2、設備定時清空數據篩出離線設備。這兩個都在ESP32端寫好了,還是建議修改使用,就修改JSON部分即可。

import socket import _thread import json#使用demo # from mytcp import * # ip='127.0.0.1' # port = 8081 # server = mytcp_server(ip,port) # # client = mytcp_client(ip,port) # # ############# # client.write(b'\x01\x02') # server.read(0) # # server.write(0,b'\x04\x06') # client.read() # # server.name_addr #獲取已經連接ip與ID對應列表,當服務器主動斷開時這個列表會更新,客戶端斷開掉線則這個列表不會更新,默認是不掉線的 # 如果是服務器只拿數據的情況比如溫度測量,我們不用關心誰連接過來,只要解析報文內容既可以知道。 # 但如果服務器需要通信就必須知道對方是誰,尤其是客戶端之間要互相中專通信時尤其如此, # 設計這個列表,為了把ID號與IP號進行一次對應。其實這只完成了一半,另一半需要在客戶端發過 # 來內容時送來{ip:設備名}再進行一次字典對應,因為局域網連接中IP是相對可靠的所以都是以IP為鍵再建立一個字典實現綁定 # 這里,因涉及到業務邏輯,所以需要留到具體的業務時再實現,無法事先弄好。 # 另外,因為是線程式的工作模式,需要主動輪詢ID號來讀取內容,這一點也需要確定哪些號有設備接入,所以這個玩意還真得有個 # #業務模式: ##以下功能是業務擴展思路,并不是函數功能,因涉及到具體業務支持所以只作為提醒記錄 #1、設備名》服務器: 服務器記錄下設備名字,就可以了 【發出設備名,服務器名,信息】 #2、設備名》設備名: 服務器根據接收信息: 【發出設備名 , 接收設備名, 信息】,執行:解析目標設備名,查找Id號再把初始信息原封傳過去 #3、服務器》設備名: 服務器根據設備名查找IP,再根據IP 找ID發送 【服務器名,接收設備名,信息】 # # # client.close() # server.close(0)class mytcp_core():def __init__(self,conn):self.read_buf=b''self.conn = connself.thread_flag = 1_thread.start_new_thread(self.read_thread,())def read(self):temp = self.read_bufself.read_buf=b''return tempdef read_thread(self):while 1:if self.thread_flag==0:breaktry:time.sleep(0.5) ####這個延時防止CPU耗盡######self.conn.settimeout(60) #這個超時可以斷開死連接,節省資源ret = self.conn.recv(1024)self.read_buf += ret except:print("closed")self.conn.close()break #退出def write(self,context): #bytesself.conn.send(context)print(len(context))def close(self):self.thread_flag =0self.conn.close()class mytcp_client():def __init__(self,ip,port):self.conn = socket.socket()self.flag = 0 #運行狀態try:self.conn.connect((ip,port))print("connected")self.tcp_core = mytcp_core(self.conn)self.flag = 1except:print("cannot connect")def read(self):if self.flag == 1:return self.tcp_core.read()else:print("cannot connected")returndef write(self,context):if self.flag == 1:return self.tcp_core.write(context)else:print("cannot connected")returndef close(self):self.tcp_core.close()return "OK"class mytcp_server():def __init__(self,ip,port,listen_num=5):self.listenSocket = socket.socket()self.name_addr=dict()self.socks = [] # 放每個客戶端的socketself.socks_tcp_core = []self.socks_addr = [] # addr listtry:self.listenSocket.bind((ip,port))self.listenSocket.listen(listen_num)_thread.start_new_thread(self.listen_add,())except:print("cannot connect")# 添加連接def listen_add(self):print("listening...")while True:try:cli, addr = self.listenSocket.accept()print("get "+(str)(len(self.socks))+":"+str(addr[0]))##################################################當連接傳入時:存入字典,以IP為主鍵,ID為值self.name_addr[str(addr[0])]=str(len(self.socks))##################################################self.socks.append(cli)self.socks_addr.append(addr)self.socks_tcp_core.append(mytcp_core(cli))except:passdef read(self,id):try:return self.socks_tcp_core[id].read()except:returndef write(self,id,context):try:return self.socks_tcp_core[id].write(context)except:returndef close(self,id):try:self.socks_tcp_core[id].close()self.socks[id].close()for k,v in self.name_addr.items():# 展開字典if v == str(id): #值等于要刪除值時del self.name_addr[k] #刪除這個字典鍵值對return "OK"except:returnfrom time import sleep import time import network,machine from machine import Pin time.sleep(5)#################### # wifi類 #################### class Sta():wlan = Nonedef __init__(self, wifi_ssid, wifi_pwd):self.wifi_ssid = wifi_ssidself.wifi_pwd = wifi_pwddef connect(self):network.WLAN(network.AP_IF).active(False) # disable access pointself.wlan = network.WLAN(network.STA_IF)self.wlan.active(True)self.wlan.disconnect()if not self.wlan.isconnected(): self.wlan.connect(self.wifi_ssid, self.wifi_pwd)def status(self):if self.wlan.isconnected():return self.wlan.ifconfig()else:return ()def wait(self):cnt = 40while cnt > 0:print("Waiting ..." )# con(self.wifi_ssid, self.wifi_pwd) # Connect to an WIFI_SSIDif self.wlan.isconnected():print("Connected to %s" % self.wifi_ssid)print('network config:', self.wlan.ifconfig())cnt = 0else:sleep(5)cnt -= 5returndef scan(self):return self.wlan.scan() # Scan for available access pointsdef CreatNetwork(self):cnt = 40ap_if = network.WLAN(network.AP_IF)#AP 模式ap_if.active(True)ap_if.config(essid=self.wifi_ssid,password=self.wifi_pwd,authmode=2)while cnt > 0:print("Waiting ..." )# con(self.wifi_ssid, self.wifi_pwd) # Connect to an WIFI_SSIDif ap_if.ifconfig()[0]!='0.0.0.0':print("start %s" % self.wifi_ssid)print('network config:',ap_if.ifconfig()[0])cnt = 0return ap_if.ifconfig()[0]else:sleep(5)cnt -= 5 if __name__=='__main__': #服務器邏輯入口#####聯網調用#熱點模式a=Sta('201king','13704677369')ip=a.CreatNetwork()port = 9999 #端口號#####設定服務器端口和IP,這個服務器沒有自建熱點,接入WIFI好測試,使用時可以自建熱點更可靠。port = 9999 #端口號try:s=mytcp_server(ip,9999) #里邊填寫IP 和端口except:machine.reset()#用來放接收的內容addr_rec=dict()add=100while 1:add=add-1time.sleep(0.5) #延時,這個實際可以很小if add<=0:add=100 #設備掉線檢測延時計數器for k,v in addr_rec.items():addr_rec[k]=b'None' # 把所有信息更改成b'None'值,連續幾次取出None,則可以認為改數據提供設備離線。for k,v in s.name_addr.items(): # 讀取連接數據,主要用來確定哪些ID被使用了,好去那個ID口執行讀取操作try:## 因為使用了JSON ,如果讀個空二進制會報錯,這里TRY一下rec_unpack=json.loads(s.read(int(v)))# 獲取數據應該是一個列表類似【1,1,‘26.545’】 設備號,讀取號,消息內容addr_rec[rec_unpack[0]]=rec_unpack[2]#獲取到的數據存入字典,鍵是設備號,值是消息內容。 # 注意這里:s_data=addr_rec.get(rec_unpack[1])if s_data:passelse:s_data=b'None's.write(int(v),s_data)#這里發送設備號所屬的消息,接收的時候列表0號元素是設備號,1號元素是他要的數據給他就行,調試的時候注意字符串和二進制,不行就上個JSON,同時最好加個空值判斷,返回個內容啥的,,平時更新這倆字典就可以設備間通信了。#print(k,v) #測試用print(addr_rec[rec_unpack[1]])#測試用#print(int(v),addr_rec[rec_unpack[1]].encode()) #測試用except:pass # client.write(b'\x01\x02') # server.read(0) # server.write(0,b'\x04\x06') # client.read() # client.close() # server.close(0)

8266客戶端

import time ,json from time import sleep import time import network,machine from machine import Pin time.sleep(5)#################### # wifi類 #################### class Sta():WIFI_SSID = "201king" WIFI_PWD = "13704677369"wlan = Nonedef __init__(self, wifi_ssid='', wifi_pwd=''):network.WLAN(network.AP_IF).active(False) # disable access pointself.wlan = network.WLAN(network.STA_IF)self.wlan.active(True)if wifi_ssid == '':self.wifi_ssid = Sta.WIFI_SSIDself.wifi_pwd = Sta.WIFI_PWD else:self.wifi_ssid = wifi_ssidself.wifi_pwd = wifi_pwddef connect(self, wifi_ssid='', wifi_pwd=''):if wifi_ssid != '':self.wifi_ssid = wifi_ssidself.wifi_pwd = wifi_pwdif not self.wlan.isconnected(): self.wlan.connect(self.wifi_ssid, self.wifi_pwd)def status(self):if self.wlan.isconnected():return self.wlan.ifconfig()else:return ()def wait(self):cnt = 30while cnt > 0:print("Waiting ..." )# con(self.wifi_ssid, self.wifi_pwd) # Connect to an WIFI_SSIDif self.wlan.isconnected():print("Connected to %s" % self.wifi_ssid)print('network config:', self.wlan.ifconfig())cnt = 0else:sleep(5)cnt -= 5returndef scan(self):return self.wlan.scan() # Scan for available access pointsa=Sta() a.connect() a.wait()import random import socket,time,json s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect(('192.168.4.1',9999)) s.settimeout(8) #設計一個8秒超時,這地方有文章,留著用 def k(x):time.sleep(2)#s.send(json.dumps([1,1,'haha'])) #發送數據,JSON格式s.send(json.dumps(x))ccc=s.recv(20)return ccc lost=0 while 1 :ccc=k([-1,1,'60%d'%random.getrandbits(3)])if ccc == b'None':lost+=1passelse:lost=0print(ccc)if lost>8:print('讀取設備離線')

pc客戶端:PC的JSON和MICROPTYON的JSON 略微不同,PC轉完了是字符串形式需要進行一次編碼。

import socket,time,json s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect(('192.168.3.38',9999)) s.settimeout(8) #如果沒這個,去請求無效數據小心卡死哦,有這個超時就報錯了 s.send(json.dumps([1,2,'123']).encode()) ccc=s.recv(100)

服務器,PC端的寫法。(這里有注釋,很大段,用來理解消息結構以及服務器邏輯)

import socket import _thread import json,time#使用demo # from mytcp import * # ip='127.0.0.1' # port = 8081 # server = mytcp_server(ip,port) # # client = mytcp_client(ip,port) # # ############# # client.write(b'\x01\x02') # server.read(0) # # server.write(0,b'\x04\x06') # client.read() # # server.name_addr #獲取已經連接ip與ID對應列表,當服務器主動斷開時這個列表會更新,客戶端斷開掉線則這個列表不會更新,默認是不掉線的 # 如果是服務器只拿數據的情況比如溫度測量,我們不用關心誰連接過來,只要解析報文內容既可以知道。 # 但如果服務器需要通信就必須知道對方是誰,尤其是客戶端之間要互相中專通信時尤其如此, # 設計這個列表,為了把ID號與IP號進行一次對應。其實這只完成了一半,另一半需要在客戶端發過 # 來內容時送來{ip:設備名}再進行一次字典對應,因為局域網連接中IP是相對可靠的所以都是以IP為鍵再建立一個字典實現綁定 # 這里,因涉及到業務邏輯,所以需要留到具體的業務時再實現,無法事先弄好。 # 另外,因為是線程式的工作模式,需要主動輪詢ID號來讀取內容,這一點也需要確定哪些號有設備接入,所以這個玩意還真得有個 # #業務模式: ##以下功能是業務擴展思路,并不是函數功能,因涉及到具體業務支持所以只作為提醒記錄 #1、設備名》服務器: 服務器記錄下設備名字,就可以了 【發出設備名,服務器名,信息】 #2、設備名》設備名: 服務器根據接收信息: 【發出設備名 , 接收設備名, 信息】,執行:解析目標設備名,查找Id號再把初始信息原封傳過去 #3、服務器》設備名: 服務器根據設備名查找IP,再根據IP 找ID發送 【服務器名,接收設備名,信息】 # # # client.close() # server.close(0)class mytcp_core():def __init__(self,conn):self.read_buf=b''self.conn = connself.thread_flag = 1_thread.start_new_thread(self.read_thread,())def read(self):temp = self.read_bufself.read_buf=b''return tempdef read_thread(self):while 1:if self.thread_flag==0:breaktry:time.sleep(0.1) #這個延時防止云服務器CPU耗盡ret = self.conn.recv(1024)# print(ret)self.read_buf += retexcept:print("closed")self.conn.close()break #退出def write(self,context): #bytesself.conn.send(context)print(len(context))def close(self):self.thread_flag =0self.conn.close()class mytcp_client():def __init__(self,ip,port):self.conn = socket.socket()self.flag = 0 #運行狀態try:self.conn.connect((ip,port))print("connected")self.tcp_core = mytcp_core(self.conn)self.flag = 1except:print("cannot connect")def read(self):if self.flag == 1:return self.tcp_core.read()else:print("cannot connected")returndef write(self,context):if self.flag == 1:return self.tcp_core.write(context)else:print("cannot connected")returndef close(self):self.tcp_core.close()return "OK"class mytcp_server():def __init__(self,ip,port,listen_num=5):self.listenSocket = socket.socket()self.name_addr=dict()self.socks = [] # 放每個客戶端的socketself.socks_tcp_core = []self.socks_addr = [] # addr listtry:self.listenSocket.bind((ip,port))self.listenSocket.listen(listen_num)_thread.start_new_thread(self.listen_add,())except:print("cannot connect")# 添加連接def listen_add(self):print("listening...")while True:try:cli, addr = self.listenSocket.accept()print("get "+(str)(len(self.socks))+":"+str(addr[0]))##################################################當連接傳入時:存入字典,以IP為主鍵,ID為值self.name_addr[str(addr[0])]=str(len(self.socks))##################################################self.socks.append(cli)self.socks_addr.append(addr)self.socks_tcp_core.append(mytcp_core(cli))except:passdef read(self,id):try:return self.socks_tcp_core[id].read()except:returndef write(self,id,context):try:return self.socks_tcp_core[id].write(context)except:returndef close(self,id):try:self.socks_tcp_core[id].close()self.socks[id].close()for k,v in self.name_addr.items():# 展開字典if v == str(id): #值等于要刪除值時del self.name_addr[k] #刪除這個字典鍵值對return "OK"except:returnif __name__=='__main__': #服務器邏輯入口#####設定服務器端口和IP,這個服務器沒有自建熱點,接入WIFI好測試,使用時可以自建熱點更可靠。port = 9999 #端口號s=mytcp_server('10.168.1.107',9999) #里邊填寫IP 和端口#字典用來放接收的內容addr_rec=dict()while 1:time.sleep(2) #延時,這個實際可以很小for k,v in s.name_addr.items(): # 讀取連接數據,主要用來確定哪些ID被使用了,好去那個ID口執行讀取操作try: ## 因為使用了JSON ,如果讀個空二進制會報錯,這里TRY一下rec_unpack=json.loads(s.read(int(v)))# 獲取數據應該是一個列表類似【1,1,‘26.545’】 本機設備號,需求數據設備號,本機發來消息內容addr_rec[rec_unpack[0]]=rec_unpack[2]#獲取到的數據存入字典,鍵是設備號,值是消息內容。################################################ 這里發送設備號所屬的消息,接收的時候列表0號元素是設備號,這個號是設備自己傳過來的是受信帶來的消息傳入0號元素的字典鍵值對中,1號元素是需求的信息,#,那么發回數據的時候就發送 addr_rec[rec_unpack[1]] 這個字典1號鍵的值,平時更新這倆字典就可以設備間通信了。# 白話邏輯:一個人說:【我是1,我要1的數據,我的數據是:你好 】,那么這個動作就是把 你好存到1中 并返回1號這個你好信息# 那么,另一個人說 :[我是2,我要1的數據,我的數據是 空] ,那么這個動作就是把空存到2中,并返回1號存好的你好這個信息# 所以,這個服務器只判斷報文內容來確定身份和功能,這樣其實就比較像MQTT那樣的隨來隨用,要誰有誰的特點。# 下面是回傳,因為這個是在PC上跑的所以,JSON格式需要編碼才能傳送。###############################################s.write(int(v),json.dumps(addr_rec[rec_unpack[1]]).encode())print(addr_rec,addr_rec[rec_unpack[1]].encode()) #測試用print(k,v) #測試用print(int(v),addr_rec[rec_unpack[1]].encode()) #測試用except:pass # client.write(b'\x01\x02') # server.read(0) # server.write(0,b'\x04\x06') # client.read() # client.close() # server.close(0)

寫了這么多其實這個帖子寫了2天左右,邊寫邊改導致前后文主旨不一致,現在確實要寫完了,那就先做個檢討吧,我有罪不該邊寫博客邊調試。應該寫完了直接出個成品再寫博客,雖然開發過程的思路也是博客的一部分,但是對閱讀者會造成困擾。下面說點正事,這個TCP下的弱雞版本MQTT是根據老楊的像串口一樣的TCP庫這個東西,我突然冒出來的靈感改編而來,一個是修改了注冊隊列的機制,提高了多設備接入時設備輪詢的效率,另外是,直接拋棄了IP ID 綁定的思路(其實我是寫了的,后來覺得很累贅直接棄掉了),使用設備消息處理認證的方式構建通信邏輯,這樣就接近MQTT的訂閱形式了,這就像打電話,每個設備都有自己的電話號碼,你發來信息就記錄下你的號碼和你的消息,你要哪個號碼就把哪個號碼上記錄的消息發給你,都是時間片內單一的工作完成的。ESP32服務器我測試了下 ,可運行,今天部署到阿里云上一份,也當MQTT用幾天,檢驗下這個玩意。雖然沒有人家MQTT穩定可靠,但是這個輕啊,ESP32自己就能跑啊,自己開熱點就能覆蓋一個小區域,還能帶著8266啥的干活,這不是也挺好嘛,起碼是個多設備無線通信方式,遇到特定不能上物聯網的環境,拿著個出來頂一頂其實也不是不錯的~

補充一個內容:阿里云服務器在部署TCP時IP地址不能填寫公網ip而是填寫‘0.0.0.0’這個地址即可綁定到公網IP上

s=mytcp_server('0.0.0.0',9999) #里邊填寫IP 和端口

另外,云服務器是有工作基線的一般是20%以下,所以如果部署云要在線程里邊弄個延時,防止CPU被耗盡,當然如果是ESP32這種單片機既然開了線程。。。這線程還不咋可靠,那就也給安排個延時比較穩妥。

def read_thread(self):while 1:if self.thread_flag==0:breaktry:time.sleep(0.1) ####這個延時防止云服務器CPU耗盡######ret = self.conn.recv(1024)# print(ret)self.read_buf += retexcept:print("closed")self.conn.close()break #退出

總結

以上是生活随笔為你收集整理的2021-12-19 老杨博客推荐\TCP像串口的多程编写的一个弱鸡版本类MQTT的TCP实现\字典值查键\微PYTHON与PYTHON的JSON区别\以及一个ESP32领导多个ESP8266组网模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

色婷婷影视 | 久久久精品小视频 | 亚洲电影网站 | 永久免费精品视频 | 九色91av | 国产视频色 | 亚洲v欧美v国产v在线观看 | 国产玖玖精品视频 | 日韩在线视频看看 | 日韩av不卡在线 | 亚洲精品www久久久 www国产精品com | 精品福利av | 亚洲欧美在线综合 | 国产精品淫 | 国产一区二区三区免费在线观看 | 久久97视频 | 国产在线播放一区二区三区 | 婷婷日| 欧美黑人xxxx猛性大交 | 亚洲综合狠狠干 | 91视频亚洲 | 久久国产精品免费视频 | 亚洲精品在线电影 | 亚洲精品黄色在线观看 | japanesexxxhd奶水| 九九在线视频 | 国产精品精品视频 | 三级午夜片| 日本韩国精品一区二区在线观看 | 亚洲婷婷综合色高清在线 | 国产精品一区久久久久 | 日韩欧美99 | 久久久久久久18 | 久久9精品 | www.午夜色.com| 一区二区日韩av | 国产在线色站 | 国产美女在线免费观看 | 欧美 日韩 视频 | 西西444www大胆高清图片 | 欧美大片www | 国产99久久 | 久草在线手机视频 | 99久久精品免费看国产 | 国产在线精品播放 | 国产在线观看免 | av在线免费网站 | www.com黄| 国产中文字幕国产 | 亚洲国产精品电影在线观看 | 韩国av三级| 国产九九在线 | 国产99久久久国产精品 | 2021国产视频 | 在线不卡视频 | 日韩在线不卡视频 | 久久免费视频7 | 女人魂免费观看 | 国产美女免费看 | 91人人人 | 伊色综合久久之综合久久 | 中文字幕在线观看视频免费 | 久久久久久美女 | 九九热视频在线 | 欧美黄网站 | 亚洲欧美综合 | 久久久久久久久久久久久国产精品 | 99久久婷婷国产精品综合 | 黄色在线观看网站 | 亚洲国产婷婷 | 99久久99久久精品国产片果冰 | 福利片视频区 | 五月激情综合婷婷 | 安徽妇搡bbbb搡bbbb | 在线免费观看视频a | 国产无遮挡又黄又爽在线观看 | 91网站免费观看 | 国产精品久久一卡二卡 | 91av视频在线观看 | 麻豆免费精品视频 | 日本中文一区二区 | bbbbb女女女女女bbbbb国产 | 久久久久国产成人免费精品免费 | 精品一区在线看 | 91精品视频在线观看免费 | 久久热首页 | 精品国产欧美 | 天天操天 | 久久精品国产亚洲精品2020 | 国产精品国产三级在线专区 | 久草视频在 | 狠狠五月天 | 亚洲第一香蕉视频 | 成片免费| 中文字幕91 | 久久久久免费精品国产小说色大师 | 日韩精品国产一区 | 久久精品国产久精国产 | 在线观看日韩精品视频 | 欧美专区亚洲专区 | 成人免费xyz网站 | www五月天com | 91香蕉视频污在线 | 在线免费视频一区 | 亚洲国产精品久久久久婷婷884 | 欧美激情视频免费看 | av大片免费| 欧美一级免费在线 | 亚洲黄色在线播放 | 午夜美女网站 | 99精品久久久久久久久久综合 | 久久精品毛片 | 可以免费观看的av片 | 久99视频| 99精品视频网 | 中文字幕免费久久 | 欧美成人h版 | 日韩中文在线播放 | 2019中文 | 成人免费在线电影 | 精品一区二区视频 | 国产69久久精品成人看 | www.夜夜草 | 99久久夜色精品国产亚洲 | 永久免费观看视频 | 美女久久久久久久久久 | 成人在线免费av | 久久久久国产一区二区 | 黄网站a| 日本一区二区三区免费观看 | 美女av电影 | japanesefreesex中国少妇 | 久久se视频 | 久久一区二 | 欧美日韩一区二区三区在线免费观看 | 日韩 在线 | 免费a级毛片在线看 | 午夜美女福利 | 久久久久久国产精品亚洲78 | 久久人人爽人人爽人人 | 成人午夜av电影 | 亚洲最新精品 | 中文字幕av在线不卡 | 亚洲一级二级三级 | 国产精品青草综合久久久久99 | 天天做天天爱夜夜爽 | 国产不卡免费视频 | av在线电影免费观看 | 国产精品久久久久久久久久东京 | 欧美性生交大片免网 | 欧美视频国产视频 | 9797在线看片亚洲精品 | 少妇bbw搡bbbb搡bbb | 欧美激情精品 | www五月天婷婷 | 99久久这里有精品 | 狠狠色狠狠色综合日日92 | 亚洲欧美偷拍另类 | 香蕉日日 | 一区二区丝袜 | 天堂av在线免费观看 | 五月亚洲综合 | 成人香蕉视频 | 韩国精品一区二区三区六区色诱 | 激情开心网站 | 欧美色噜噜 | 免费在线成人av | 91亚洲精品久久久中文字幕 | 91精品麻豆 | 日批视频在线观看免费 | a黄色大片 | 中文字幕五区 | 激情久久小说 | 国产精品欧美久久久久三级 | 黄色网www | 粉嫩一二三区 | 婷婷激情五月 | 在线综合 亚洲 欧美在线视频 | 伊人视频 | 97色涩 | 中文字幕综合在线 | 久久97久久| 国产精品18久久久久久vr | 最新日韩视频在线观看 | 在线观看日韩视频 | 日韩精品电影在线播放 | 99精品毛片 | 国产在线观看网站 | 精品国产自 | 超碰在线公开免费 | 国产r级在线观看 | 欧美日韩精品网站 | 亚洲aaa毛片 | 日本大片免费观看在线 | 久久久久久久网 | 日韩一区二区三区不卡 | 日韩欧美精品一区二区三区经典 | 99热这里只有精品8 久久综合毛片 | 久久99在线 | 国产视频在线观看一区二区 | 毛片激情永久免费 | 狠狠的干狠狠的操 | 午夜黄色| 欧美一级性 | 一本色道久久综合亚洲二区三区 | 91精品爽啪蜜夜国产在线播放 | 五月婷婷丁香六月 | 91精品久久香蕉国产线看观看 | 国产97在线视频 | 久久看片| 色噜噜在线观看 | 在线观看国产亚洲 | av中文电影 | 久久精品人人做人人综合老师 | 久草网站在线 | 香蕉视频在线看 | 黄色视屏在线免费观看 | 98涩涩国产露脸精品国产网 | 日韩理论电影网 | 免费看色网站 | 九九欧美| 免费视频在线观看网站 | 国产九九热视频 | 亚洲一级国产 | 精品久久久久亚洲 | 免费 在线 中文 日本 | 成人免费网站视频 | 美女av免费看 | 国产裸体视频bbbbb | 国产午夜精品福利视频 | 激情电影影院 | 99成人在线视频 | 国产视频美女 | 国产高清专区 | 日韩不卡高清视频 | 国产精品中文字幕在线观看 | 精品国产一区二区三区久久久蜜臀 | 91av看片 | 日韩亚洲在线观看 | 免费精品人在线二线三线 | 免费看十八岁美女 | 久久久久久久久久国产精品 | 久久久久观看 | 久久丁香网 | 日韩动态视频 | 亚洲精品国产精品国自产观看 | 国产视频69| 亚洲国产合集 | 视频在线观看99 | 国产蜜臀av| 中文字幕免费观看全部电影 | 日本黄色a级大片 | av色网站 | 中文字幕高清av | 欧美国产日韩激情 | 亚洲国产欧美一区二区三区丁香婷 | 麻豆91在线 | 国产精品日韩在线 | 精品视频亚洲 | 99精品视频在线观看视频 | 久久不射影院 | 99精品99 | 国产成人av电影在线观看 | 成人蜜桃视频 | 久久 精品一区 | 91麻豆精品国产91久久久更新时间 | 国产精品精品久久久久久 | 成人av电影免费在线播放 | 久久久久久久亚洲精品 | 99热.com | 99欧美| 99国产精品免费网站 | 国产日韩欧美在线观看 | 国产视频精选在线 | 一本一本久久a久久精品综合小说 | 97成人在线免费视频 | 日韩最新理论电影 | 特级黄色片免费看 | 欧洲视频一区 | 欧美va电影| 久久久影院 | 91高清视频 | 日韩视频免费 | 日韩在线电影一区 | www.综合网.com | 中文字幕 成人 | 五月婷婷丁香 | 国产高清在线看 | av丁香| 久久久香蕉视频 | 亚洲 中文 在线 精品 | 国产精品欧美一区二区三区不卡 | 欧美日韩视频 | 亚洲欧美日韩不卡 | 91精品久久久久久综合乱菊 | 草久久久久久 | 久久精品国产免费观看 | 精品国产1区2区3区 国产欧美精品在线观看 | 成人在线电影观看 | 久久影视中文字幕 | 亚洲电影黄色 | 亚洲精品免费视频 | 日本中文在线观看 | 国产99久久久久久免费看 | 国产在线观看 | 国产99久久99热这里精品5 | 午夜精品一区二区国产 | 国产伦理久久 | 91久久久久久久一区二区 | 四虎成人精品永久免费av | 麻豆传媒一区二区 | 日本在线观看黄色 | 天天综合色天天综合 | 亚洲精品国 | 黄色免费av| 97在线观| 中文字幕一区二区在线播放 | 精品一区二区免费视频 | 国产a免费| 成人一区电影 | 国产日产精品久久久久快鸭 | 激情五月婷婷激情 | 香蕉视频在线免费看 | 欧美午夜精品久久久久久浪潮 | 日韩精品一区二区三区在线视频 | 色狠狠干 | 狠狠色丁香久久综合网 | 婷婷久久网站 | 黄色小视频在线观看免费 | 亚洲欧美视频一区二区三区 | 一级欧美黄 | 91免费网站在线观看 | 天天玩夜夜操 | japanesefreesex中国少妇 | 色综合天天天天做夜夜夜夜做 | 女女av在线 | 久久精品国产精品亚洲 | av看片网址 | 国产一区视频导航 | 久久精品视频99 | 亚洲更新最快 | 国产九色在线播放九色 | 一级片视频免费观看 | 久久久久国产精品免费 | 在线观看视频你懂的 | 日本中文字幕久久 | 午夜久久久久久久久 | 国产精品一区一区三区 | 久久精品国产v日韩v亚洲 | 国产色啪| 91福利区一区二区三区 | 国产精品久久久亚洲 | 久久久精品免费看 | 一本一道久久a久久综合蜜桃 | 在线观看免费黄色 | 热re99久久精品国产66热 | 日韩免费在线观看视频 | 久草在线一免费新视频 | 97**国产露脸精品国产 | 久久人人爽人人爽 | 中字幕视频在线永久在线观看免费 | 欧美精品亚洲二区 | 国产麻豆剧果冻传媒视频播放量 | 97精品国产91久久久久久 | 一区免费观看 | 日韩在线观看 | 亚洲精品在线观看视频 | 日韩免费在线观看网站 | 婷婷丁香在线观看 | 日韩成人一级大片 | 国产美女久久久 | 在线观看国产一区二区 | 精品亚洲va在线va天堂资源站 | 日韩精品一区二区在线视频 | 亚洲国产影院av久久久久 | 日韩首页| 五月激情站| 在线超碰av| 成人免费在线电影 | 久久视频免费在线观看 | 在线观看网站你懂的 | 久久久久网址 | 亚一亚二国产专区 | www..com黄色片| 91精品在线免费观看视频 | 综合网伊人| 亚洲精品在线观看免费 | 精品国产一区二区三区久久久蜜月 | 国产精品一区免费在线观看 | www.五月婷婷.com | 成人资源在线 | 久久色视频 | 亚洲撸撸 | 免费av福利| 久久99精品久久久久婷婷 | 欧美色伊人 | 91高清一区 | 国产免费小视频 | 日韩高清一二三区 | 国产精品麻| 一区二区三区动漫 | 国产精品一区二区三区99 | 久久国产免费视频 | 国产又粗又猛又爽又黄的视频免费 | 国内精品视频在线 | 国产综合视频在线观看 | 天无日天天操天天干 | 午夜久久精品 | 日韩一区二区三区观看 | 韩国一区二区三区在线观看 | 99电影456麻豆 | 99久久婷婷国产综合精品 | 91精品久久久久久综合五月天 | 国产精品久久久久亚洲影视 | 日本女人在线观看 | 色诱亚洲精品久久久久久 | 日日夜夜免费精品视频 | 亚洲久久视频 | 久久字幕精品一区 | 国产免费中文字幕 | 久久爱资源网 | 欧美久久久久久久 | 国产午夜精品一区二区三区欧美 | 久久精品a| 99久久夜色精品国产亚洲96 | 亚洲做受高潮欧美裸体 | 欧美日韩高清一区二区 国产亚洲免费看 | 久久精选 | 亚洲精品久久久久久久蜜桃 | 九九综合九九 | 欧美做受高潮电影o | 天天操天天色天天射 | 欧美另类色图 | 成人在线视频一区 | 中文字幕在线观看网站 | 伊人狠狠色丁香婷婷综合 | 久草在线视频免费资源观看 | 爱情影院aqdy鲁丝片二区 | 色婷婷国产精品一区在线观看 | 亚洲专区免费观看 | 麻豆影视在线免费观看 | 69久久久| 免费高清看电视网站 | 高清视频一区 | 91精品爽啪蜜夜国产在线播放 | 97在线观看免费观看 | 欧美做受xxx | 在线观看视频国产 | 麻豆视频免费入口 | 国产精品久久人 | 激情电影影院 | 国产精品一区专区欧美日韩 | 24小时日本在线www免费的 | 五月婷婷在线视频观看 | 亚洲区视频在线观看 | 超碰在线观看av.com | 五月婷婷色播 | 中文字幕在线视频一区二区三区 | 808电影免费观看三年 | 国产亚洲精品久久久久5区 成人h电影在线观看 | 黄在线免费看 | av电影免费在线看 | 国外调教视频网站 | 国产成人一区在线 | 久久亚洲欧美 | 精品久久一区二区 | 9热精品| 中文字幕资源网 国产 | 亚洲免费av片 | 婷婷久久久久 | 日韩欧美xxx| 在线视频观看你懂的 | 久久电影中文字幕视频 | 特级西西444www大精品视频免费看 | 97热视频| 欧美韩国在线 | 国产免费一区二区三区最新6 | 国模视频一区二区三区 | 久久成年视频 | 亚洲精品视频久久 | 中文字幕视频在线播放 | 国产裸体视频bbbbb | 国产精品日韩在线 | 久草精品资源 | 国产精品mm| 夜夜摸夜夜爽 | 91精品在线观看视频 | 精品a视频| 欧美精品乱码99久久影院 | 丰满少妇在线观看网站 | 91精品啪在线观看国产 | 色综合亚洲精品激情狠狠 | 在线观看电影av | 亚洲国产字幕 | 久久看免费视频 | 三级av片| 波多野结衣在线中文字幕 | 亚州精品一二三区 | 97人人爽 | 日本成人中文字幕在线观看 | 久久97超碰| 久久国产精品视频 | 国产精品成人av久久 | 日韩三级视频在线观看 | 亚洲区色 | 亚洲免费成人av电影 | av中文字幕第一页 | 人人舔人人插 | 日韩精品一区二区三区水蜜桃 | 免费观看视频黄 | 黄p网站在线观看 | 超碰在线国产 | 久久高清免费视频 | 欧美极品一区二区三区 | 欧美精品久久久久久 | 99久久久久免费精品国产 | 国产精品一区二区你懂的 | 成人手机在线视频 | 日韩精品一区在线播放 | 国内视频一区二区 | 六月丁香六月婷婷 | 日韩亚洲在线视频 | 欧美日韩视频网站 | 国产中文字幕在线 | 日韩精品中文字幕一区二区 | 毛片黄色一级 | 操一草 | 天天干天天天 | 五月婷婷一级片 | 国产又粗又硬又长又爽的视频 | 免费在线观看污 | 黄p在线播放 | 婷婷在线播放 | 91看片麻豆 | 高清色免费| 免费在线看v | 综合色伊人 | 99精品国产99久久久久久福利 | 狠狠色噜噜狠狠狠狠2021天天 | 波多野结衣久久精品 | 日日干av | 亚洲区另类春色综合小说 | av电影免费在线看 | 91入口在线观看 | 亚洲97在线 | 欧美另类调教 | 九九九视频在线 | 97超在线 | 96精品视频 | 久久资源总站 | 激情网第四色 | 免费在线观看a v | 久草男人天堂 | 四虎国产精品成人免费影视 | 久久免费国产视频 | 日韩精品久久久久久久电影竹菊 | 欧美色888| 91私密视频| 精品美女久久久久久免费 | 国产黄色资源 | 狠狠婷婷| 在线免费观看欧美日韩 | 国产精彩视频 | 国产一区二区三区免费在线观看 | 超碰伊人网 | 麻豆91精品 | 手机av电影在线 | 在线看日韩av | 日韩免费在线看 | 日免费视频| 久久久久久久久久久久亚洲 | 精品国产一区二区三区蜜臀 | 国产一级视频在线 | 亚洲国产免费看 | 日韩免费视频网站 | 成全免费观看视频 | 日韩av午夜在线观看 | 麻豆国产网站 | 日韩高清久久 | 日韩在线无 | 欧美一级性生活片 | 中国一级片在线 | 国产精品久久久久aaaa | 亚洲无吗天堂 | a在线观看国产 | 久久久久亚洲最大xxxx | 国产黄a三级三级三级三级三级 | 黄色软件在线看 | 啪啪凸凸 | 五月导航 | 欧美先锋影音 | 狠狠狠狠狠狠操 | 国产精品久久久久av免费 | 亚洲成人家庭影院 | 2019免费中文字幕 | 黄色三级网站在线观看 | 欧美韩国日本在线观看 | 99资源网 | 午夜一级免费电影 | 欧美一级片在线 | av中文字幕免费在线观看 | 操老逼免费视频 | 国产高清中文字幕 | 人人爽人人爽人人爽 | av免费试看 | 欧美日韩中文字幕在线视频 | 国产精品va在线观看入 | 欧美日韩国产网站 | 亚洲高清精品在线 | 国产黄色免费在线观看 | 国产特级毛片aaaaaa毛片 | a一片一级 | 国产一区二区在线播放 | 国产色视频一区二区三区qq号 | 日韩免费在线观看视频 | 91资源在线观看 | 日韩欧三级 | 999久久精品 | 奇米影音四色 | 久久精品久久精品久久精品 | 亚洲欧美日韩国产一区二区三区 | 探花视频免费在线观看 | 在线 成人| 一级黄色片在线 | 久久99国产精品久久99 | 99热最新精品 | av网站大全免费 | 三级黄色a| 最近中文字幕国语免费av | 国产中文字幕在线观看 | 精品国内自产拍在线观看视频 | 三级av免费观看 | www.色com| 不卡精品| 久久久久久久久久久影视 | 黄色一级动作片 | 色综合中文综合网 | 五月开心激情 | 91天天操 | 国产在线不卡一区 | 粉嫩av一区二区三区四区五区 | 高清av中文在线字幕观看1 | 天堂黄色片 | 久久不卡国产精品一区二区 | 日韩在线视频一区二区三区 | 成人在线免费观看网站 | 国产精品一区二区果冻传媒 | 国产精品12345 | 免费在线一区二区三区 | 中文超碰字幕 | 日日日操操 | 国产91成人在在线播放 | 超碰在线最新地址 | 日韩在线观看视频中文字幕 | www久久com| 日韩亚洲在线 | 欧美日韩国产三级 | 国产色视频网站2 | 欧美精品久久久久久久久久久 | 久久久久久久网站 | 亚洲精品国产第一综合99久久 | av一级在线 | 日本在线观看视频一区 | 热久久视久久精品18亚洲精品 | 欧美日韩性生活 | 久久精品4| 免费国产一区二区视频 | 国产精品久久久久久久久久久久冷 | 欧美视频18 | 色婷婷a| 亚洲精品美女久久久久网站 | 97在线观视频免费观看 | 婷婷六月天丁香 | 美女视频网站久久 | 91人人插| 久久久久亚洲精品国产 | 日韩最新中文字幕 | 久久99精品波多结衣一区 | 日韩av成人免费看 | 中文字幕在线观看第三页 | www免费| 伊人狠狠操 | 性色av免费观看 | 中文字幕乱码亚洲精品一区 | 国产精品久久久久久妇 | 欧美久草网 | 中文字幕资源站 | 2019中文在线观看 | 国产资源在线播放 | 国产精品久久久久久婷婷天堂 | 亚洲精品久久久蜜臀下载官网 | 日日干,天天干 | 欧美永久视频 | 美国人与动物xxxx | 亚洲爱av| 亚洲爱爱视频 | 久久免费视频精品 | 中文字幕电影在线 | 成年人免费看的视频 | 亚洲视频在线播放 | 九九电影在线 | 午夜少妇一区二区三区 | 国产一级二级三级在线观看 | 精品亚洲国产视频 | 国产一区二区三区久久久 | 日日激情| 亚洲精品久久久蜜臀下载官网 | 69视频永久免费观看 | 人人爱天天操 | 日本精品一区二区 | 亚洲aaa级| 久久成年人| 天堂v中文| 欧美视频日韩视频 | 999久久久久久久久6666 | 蜜桃视频成人在线观看 | 国产又粗又猛又爽又黄的视频免费 | 射久久久| 久久a v视频 | 五月天激情综合 | 国产日韩欧美在线播放 | 在线视频欧美亚洲 | japanesefreesexvideo高潮 | 国产护士av | 在线观看亚洲 | 久艹视频免费观看 | 99精品视频在线观看视频 | 日日干精品 | 国产麻豆视频在线观看 | 正在播放 国产精品 | 免费在线观看日韩 | 五月天综合网站 | 国内三级在线观看 | 日韩在线观看第一页 | 色在线中文字幕 | 欧美专区亚洲专区 | 黄色软件在线观看 | 在线中文日韩 | 久久精品官网 | av在线免费观看网站 | 精品视频 | 色噜噜狠狠狠狠色综合久不 | 国模吧一区 | 丝袜美女在线观看 | 久久新| 在线免费中文字幕 | 日韩在观看线 | 在线免费中文字幕 | 99精品视频免费看 | 一区二区三区四区在线免费观看 | 精品久久久久_ | 亚洲综合色视频在线观看 | 成人午夜电影网 | 日韩精品一区二区三区中文字幕 | 中文字幕一区二区三区在线播放 | 国产伦理一区 | 日韩国产精品一区 | 永久免费的av电影 | 91禁在线看| 人人草在线视频 | av不卡免费在线观看 | 亚洲精品福利在线观看 | 国产精品视频免费观看 | 欧美a级在线 | 国产一卡久久电影永久 | 91av中文| 久久不射电影院 | 91丨porny丨九色 | 免费麻豆网站 | 一二三区视频在线 | 在线欧美国产 | 色噜噜噜噜 | 97超碰在线人人 | 亚洲天天在线日亚洲洲精 | 午夜视频在线观看一区二区三区 | 久草网视频 | 国产美女精彩久久 | 毛片网站在线 | www.99在线观看| 久草热久草视频 | 9999免费视频 | 91av网站在线观看 | 中文字幕免费不卡视频 | 欧美精品三级 | 久久久久久久久久电影 | 久久精品精品电影网 | 五月天丁香 | 免费久久网站 | 在线观看国产中文字幕 | 国产一级视频在线免费观看 | 911香蕉| 97精品一区 | 国产伦理久久精品久久久久_ | 国产尤物一区二区三区 | 成人av网站在线观看 | 亚州人成在线播放 | 国产亚洲精品久久久久久大师 | 欧美黑人xxxx猛性大交 | 草久在线 | 日韩特级毛片 | 国内精品久久久久 | 亚洲黄色免费观看 | av免费在线播放 | 国产精品青草综合久久久久99 | a视频免费看 | av在线专区| 色99之美女主播在线视频 | 国产色网| 色在线高清 | 国产一区影院 | 亚洲视频免费在线看 | www国产一区 | 久久久综合精品 | 国产黄色大片 | 精品免费99久久 | 在线亚洲激情 | 国产精品久久久久久高潮 | 婷婷色综合网 | 亚洲理论片在线观看 | 亚洲精品在线视频 | 国产特级毛片aaaaaa高清 | 九九九在线观看 | 六月久久婷婷 | 福利网在线 | 国产原创在线 | 亚洲作爱| 二区在线播放 | 国产伦精品一区二区三区免费 | 99热手机在线观看 | 国产亚洲视频系列 | 久久一二区 | www.888av| 操综合 | 欧美极品在线播放 | 亚洲精品99久久久久中文字幕 | 奇米影视在线99精品 | 久久综合网色—综合色88 | 99视频在线观看免费 | 久久久久久久久久久久av | 四虎影视国产精品免费久久 | 精品久久一区二区三区 | 美女在线黄 | 婷婷5月激情5月 | 国产九色91 | 狠狠操.com| 欧美性生活免费 | 少妇视频在线播放 | 夜夜看av | 久草免费看 | aaa黄色毛片 | 成人网444ppp | 五月婷婷.com | 亚洲小视频在线 | 欧美一区二区视频97 | 国产一级不卡毛片 | 日日日日干 | 日韩在线网址 | 久热av| 日韩激情视频 | av不卡中文| 欧美大码xxxx | 深夜免费福利视频 | 91日韩在线专区 | 玖玖视频国产 | 1024手机看片国产 | 亚洲黄在线观看 | a黄色片在线观看 | 午夜精品久久久久久久99婷婷 | 久草在线免费电影 | 日韩中文三级 | 亚洲国产成人在线 | 亚洲综合五月天 | 亚洲永久精品在线 | 国内精品免费 | 欧美日韩激情视频8区 | 天天色天天操天天爽 | 国产专区在线 | 亚洲视频每日更新 | 国产91影院 | 女人18片| 成人app在线免费观看 | 亚洲成a人片在线观看网站口工 | 天天草综合 | 黄色在线观看免费网站 | 中文字幕日韩精品有码视频 | 91九色视频在线播放 | 天天天干天天射天天天操 | 91热爆在线观看 | 天堂成人在线 | mm1313亚洲精品国产 | 日韩电影久久 | 免费在线黄 | 久久国产精品久久精品 | 国产精品资源网 | 中文字幕乱码电影 | 亚洲免费在线看 | 国产成人高清 | 亚洲精品国产高清 | 91福利社区在线观看 | 99999精品视频 | 久久九九免费 | av在线影片 | 欧美国产大片 | 91欧美视频网站 | 91女人18片女毛片60分钟 | 成人网中文字幕 | 日韩欧美在线一区 | 亚洲免费高清视频 | 西西大胆免费视频 | 免费av黄色| 日本aaa在线观看 | 在线高清| 天天操天天射天天舔 | 色丁香综合 | 亚洲天堂精品视频 | 伊人天天综合 | 国产午夜视频在线观看 | 中文字幕在线乱 | 四虎成人精品在永久免费 | 国产成人精品一区在线 | 天天综合久久综合 | 天天操天天干天天综合网 | 亚洲国产成人久久 | 91久久精品日日躁夜夜躁国产 | 99热精品免费观看 | 久草在线视频国产 | 国产精品三级视频 | 一区 二区 精品 | 又黄又爽又刺激视频 | 国产精品破处视频 | 国产亚洲精品福利 | 成人一区在线观看 | 九九视频在线观看视频6 | 中文字幕电影一区 | 日韩免费在线网站 | 在线导航av | 成人免费观看网址 | 这里只有精彩视频 | 亚洲三级影院 | 99国产一区| 国产午夜三级一区二区三 | 国产精品久久久久久吹潮天美传媒 | 久久国产精品一区二区三区四区 | 国产精品毛片完整版 | 亚洲综合最新在线 | 黄色在线观看免费网站 | 成人黄色电影在线 | 精品国产乱码久久久久久1区二区 | 国产视频精选在线 | 久久这里只精品 | 狠狠狠色 | 婷婷色吧| 一区二区国产精品 | 午夜视频在线观看一区二区三区 | 国产精品免费观看网站 | a视频在线观看 | 国产资源免费在线观看 | 六月丁香激情综合色啪小说 | 一区二区三区观看 | 精品在线观看一区二区 | 最近中文字幕在线播放 | av天天色| av一级片在线观看 | 欧美午夜性生活 | 在线免费高清视频 | 欧美日韩精品在线一区二区 | 中文在线a∨在线 | 婷婷精品进入 | 91尤物国产尤物福利在线播放 | 国产精品一区二区白浆 | 日韩免费网址 | 日韩中文字幕电影 | 3d黄动漫免费看 | 天天弄天天操 | 四虎影视久久久 | 免费观看av | 婷婷色综| 2024av| 久草精品视频在线播放 | 一区二区不卡在线观看 | 国产又黄又猛又粗 | 国产一区私人高清影院 | 97天堂 | 粉嫩av一区二区三区四区五区 | 日韩在线视频观看 | 91亚洲精品久久久中文字幕 | 日韩伦理片一区二区三区 | 精久久久久 | 国产又粗又猛又黄又爽视频 | 悠悠av资源片 | 久久久影院| 国产一区二区在线免费播放 | 丁香影院在线 | 国产精品免费视频网站 | 97色在线观看 | 在线视频1卡二卡三卡 | www.av中文字幕.com| 亚洲国产精品成人女人久久 |