物聯(lián)網(wǎng)技術(shù)應(yīng)用第4章物聯(lián)網(wǎng)網(wǎng)關(guān)開發(fā)_第1頁
物聯(lián)網(wǎng)技術(shù)應(yīng)用第4章物聯(lián)網(wǎng)網(wǎng)關(guān)開發(fā)_第2頁
物聯(lián)網(wǎng)技術(shù)應(yīng)用第4章物聯(lián)網(wǎng)網(wǎng)關(guān)開發(fā)_第3頁
物聯(lián)網(wǎng)技術(shù)應(yīng)用第4章物聯(lián)網(wǎng)網(wǎng)關(guān)開發(fā)_第4頁
物聯(lián)網(wǎng)技術(shù)應(yīng)用第4章物聯(lián)網(wǎng)網(wǎng)關(guān)開發(fā)_第5頁
已閱讀5頁,還剩76頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第4章物聯(lián)網(wǎng)網(wǎng)關(guān)開發(fā)學(xué)習(xí)目標(biāo)蒙握網(wǎng)關(guān)、物寐網(wǎng)網(wǎng)美的林念02.理斛物解網(wǎng)網(wǎng)關(guān)的功怩0 3.皆握物寐網(wǎng)網(wǎng)關(guān)工隹創(chuàng)建04.魏琳蒙報物寐網(wǎng)網(wǎng)關(guān)程序微材和模料器微據(jù)獲取:.5,藪糅察握應(yīng)用接口數(shù)據(jù)寐劭4.1物聯(lián)網(wǎng)網(wǎng)關(guān)概述4.1.1認(rèn)識物聯(lián)網(wǎng)網(wǎng)關(guān)-1,網(wǎng)關(guān)網(wǎng)關(guān)(Gateway)又稱網(wǎng)間遮接器、仍衩轉(zhuǎn)換器。網(wǎng)關(guān)點傳輸層上實現(xiàn)網(wǎng)絡(luò)亙速,是復(fù)蓋的網(wǎng)絡(luò) 亙透被備,以用于兩個離層仍衩系同的網(wǎng)絡(luò)亙 速。網(wǎng)關(guān)右路由器的相他之處矗于它們都可用于碉 節(jié)兩個或多個獨貪網(wǎng)絡(luò)之間的流量。但是,路 由器用4直接兩個相何類型的網(wǎng)絡(luò),網(wǎng)關(guān)用4 隹接兩個系同的網(wǎng)絡(luò)。由于送種邏:晴,路由器 可怩被視,網(wǎng)關(guān),但網(wǎng)關(guān)并系總是被視,路由 器。0

2、2.物寐網(wǎng)網(wǎng)關(guān) “物珠網(wǎng)網(wǎng)美”是物寐網(wǎng)的體系架構(gòu)中,點感知層 布網(wǎng)格層兩個系同的網(wǎng)格之間的中間微備。物聯(lián)網(wǎng)網(wǎng)美是專用的硬件核備或軟件程本。物珠網(wǎng)網(wǎng)關(guān)怩被杷系同的物體收集到的倍息整合起 來,并且把它們傳輸?shù)较乱粚哟?。此外,物寐網(wǎng)窗 怩網(wǎng)關(guān)迷具備核備管理切犍4.1.2物聯(lián)網(wǎng)網(wǎng)關(guān)的功能01.廣達(dá)的攝入犍力目啼用4近程通信的技術(shù)標(biāo)尊很多,仇有見的 WSN技術(shù)就包括LonWorks、ZigBee、6LowPAN、 RUBEE等。各類技術(shù)£要針對某一應(yīng)用展開,鞅 乏兼容桃布體系規(guī)劃,電LonWorks i要應(yīng)用孑臂 怩社區(qū),RUBEE逶用于怒走環(huán)境。電何實現(xiàn)仞衩 的兼容桃、接口和體系規(guī)劃,目喻我

3、國內(nèi)外已經(jīng) 市多個組軀我開展物寐網(wǎng)網(wǎng)關(guān)的標(biāo)雁化工作,電 3GPP f(Third Generation Partnership Project,第三 代合作及伴花刻)、傳感器網(wǎng)絡(luò)標(biāo)率工作組,。實 現(xiàn)各種通信披術(shù)標(biāo)雁的亙寐互通。02 .可管理犍力根上的管理犍力,對于值何大型網(wǎng)冷都是赤系可 夕的。首先要對網(wǎng)關(guān)進(jìn)行管理,電灌冊管理、訪 問控制、服務(wù)集感、技態(tài)藍(lán)測得。網(wǎng)關(guān)實現(xiàn)3網(wǎng) 內(nèi)節(jié)點的管理,電獲取節(jié)點的屬桃、收態(tài)備,山 及對節(jié)點的逐程按喇、蟆醵、診新命照據(jù)傳輸備 o由于3網(wǎng)的核術(shù)標(biāo)灌系同,仍衩的復(fù)蓋桃系同 ,所。網(wǎng)關(guān)具有的管理就力系同。物寐網(wǎng)網(wǎng)關(guān)可 心管理系同的感知網(wǎng)絡(luò)、系同的應(yīng)用,使用疣一 的管

4、理接口裁木對網(wǎng)絡(luò)節(jié)點進(jìn)行疣一管理。3.伊衩箝換惚力由孑系同類型的感知網(wǎng)絡(luò)與接入網(wǎng)絡(luò)有系同的懷 衩,各個4辦衩之間系犍直接的進(jìn)行通信,物寐網(wǎng) 網(wǎng)關(guān)可。實現(xiàn)柩系同的感知網(wǎng)絡(luò)到接入網(wǎng)絡(luò)的價 衩轉(zhuǎn)換、桁下層的標(biāo)瘠格式的數(shù)據(jù)疣一封裝、保 證系同的感知網(wǎng)絡(luò)的傷衩犍夠變鼠疣一的微踞右 信令/特上層干農(nóng)的數(shù)據(jù)包解析就感知層懷衩可 。竊別的信令令按喇婿令進(jìn)行熬據(jù)的傳輸。4.2智能燈光控制系統(tǒng)的網(wǎng)關(guān)開發(fā)4.2.2功能設(shè)計。成淆倍息技術(shù)的發(fā)展,場寐網(wǎng)披木馬傳疣行業(yè)的 寐系愈發(fā)緊密,其中智犍家居已勉或,物寐網(wǎng)應(yīng) 用的感功嚓例之一。而智怩燈先作,智怩家居處 系可少的俎鼠郡今,是家蓬帝怩化的童要手段和 體現(xiàn)。:臂犍燈先的

5、開關(guān)搜喇可。遍逑究能傳感器采集先 矮極盛,。此作,判斷燈先開關(guān)的條件,同時通 過逐程客戶端進(jìn)行開關(guān)搜喇。.系挽翹架:*2.網(wǎng)關(guān)工作流隹 目標(biāo)地址(網(wǎng)關(guān))接收傳感器熬據(jù); 網(wǎng)關(guān)怩對憲源信息做出正確判斷,控制燈憲的開 房弄發(fā)送照據(jù)信息到唐戶端, 客戶端發(fā)送請求密錄熬據(jù)刎網(wǎng)關(guān),通過臉證后顯 示燈先正態(tài)界可。逐程控刷燈先開關(guān)。4.23功能實施創(chuàng)建新工程 :*2.利用config.txt丈本次件配置網(wǎng)關(guān)ip地址、允許於 錄的用戶名右密雞 :*3 ,網(wǎng)關(guān)功惚錢本編寫 :*4.微置劇據(jù)源右客戶端,測詼網(wǎng)關(guān)隹星4.2.3功能實施導(dǎo)入庫import socketimport jsonimport timeimp

6、ort _thread定義會扃變量落數(shù)雙照據(jù)源獲得的照據(jù)、網(wǎng)案的ip 地址、外部先曝傳感器的狀態(tài)dataFromSource ="ip ="status =" 乂獲得config.txt中獲取IP地征(getjp笛密J def get_ip():global ip# 小局變量使用聲闞 f = open('config.txt')# 打開config.txtip = freadlineO.replaceCXn',")# 裱第一行寫到變量ip上 f.close()# 關(guān)閉次冷次格。知擁名展:socket介殆socket也稱作套接生&q

7、uot;,用孑描述IP也征布端口, 是一個通信鋌的句柄。應(yīng)用在本通存通過“春接室” 向網(wǎng)格或出錯或或者反入網(wǎng)格錯點。即都可。用“打 topen>4t % write/read>M 閉close”模 式來猱作。 socket就是該模式的一個實現(xiàn),socket即是一種特殊 的文件,一些socket笛微就是對其進(jìn)行的操作(裱/寫 10、打開、美閏)o 乂照據(jù)源獲取照據(jù)(getData西豳J遍過劇據(jù)源模料傳感器的照據(jù)信息,網(wǎng)關(guān)的G務(wù)是負(fù) 責(zé)接收并處理信息,接收需要使用Python套接室接收 TCP流并箝化觀多符串使用,劇據(jù)源的使用指我冷手景 后手。展赤,接下耒迷要流加對照據(jù)的判斷,從而完

8、閥對燈先號怩開關(guān)的致累,我日帝眩活中,劣環(huán)境低 于一友的亮度是南是需要開燈的,送時桁送個外部先 源傳感器怩探測到的亮波值核置卷100,咨外部先源還 亮的時候,宦內(nèi)就無需善開燈,送時桁外部先源傳感 器怩探測到的亮度值枝黃,400,點區(qū)間100至400時則 燈的開關(guān)無需智怩處理。def getDataf):while True:global dataFromSource, status# dataFromSource, status與ip一書需要聲闞小扃變量s = socket.socket(socket.AF_lNET, socket.SOCK_STREAM)# 網(wǎng)絡(luò)通訊(TCP/IP-IPv4

9、,TCP 流)s.connect(ip, 10068)# i劭初胎化TCP服務(wù)器座接,電泵接*錯,退®socket.error 褶篌。s.send(b'findn')# 發(fā)送TCP微據(jù),物string中的微據(jù)發(fā)送割it接的套接室。返他 是要發(fā)送的生節(jié)微量,祓微量可惚小string的冬節(jié)上小。dataFromSource = s.recv(4096).decode("utf-8")# 接收TCP微據(jù),微據(jù)“4室符串形式返,bufsize猾笑要接收的 量大微據(jù)量。dataFromSource = eval(dataFromSource)# 室符串箝化名

10、容典if(int(dataFromSource'0200') < 100):status = '0201': '1', '0202': '1', '0203': '1' else:if (int(dataFromSource'0200') > 400):status = '0201': 'O', '0202': 'O', '0203': '0' dataFrom

11、Source.update(status) # 莊 &更新 dataFromSource = str(dataFromSource) #:典輅化為 9 符串 s.close) #關(guān)閉速接 time.sleep(9) #間隔9秒執(zhí)行# 網(wǎng)關(guān)新方省瑞微據(jù)笄稗命,其中dataFromSource則用來新花。4.23功能實施。知擁名展:多典在Python中,有典是一系列神-值對",每個便都 與一個值相關(guān)珠,可也使用穗耒訪間號之相關(guān)麻的 他。與神和關(guān)珠的他可。是照多、多符串、列表乃 至生典。事實上,可桁但何Python對象用作生典中 的他。穗-他對”是兩個相關(guān)珠的值。指定植時 ,Pyt

12、hon粉返命與之和關(guān)麻的伍。桂我他之間用胃號 今隔,而“詭他時”之間用途號令隔。點多翼中, 可心花儲值意照量的“利-依對”。4.2.3功能實施網(wǎng)關(guān)檢測客戶端密錄合法植(clientComm笛密J 網(wǎng)關(guān)系以要接收熬據(jù)源發(fā)出的熬據(jù)信息,迷需要與客戶 端建走通訊,才惚將客戶端上的諦求傳輸?shù)骄W(wǎng)關(guān),合法 的用戶被保4點config.txt中,此時需要網(wǎng)關(guān)來檢驗用戶合 修植,。及開啟彼程保持馬客戶端的通訊,彼程發(fā)送信 感到客戶端彼福。def clientComm():f = open('config.txt,) # 打開config.txtf.readlinef) # 篌行allowedUser

13、= dict(username=f.readline().replace(,n',"), password=f.readline().replace('n',")#創(chuàng)建冬典-可於錄用戶名布密媽print('可於錄用戶TallowedUseij #在控制臺上打印可受錄用戶f.close() #關(guān)閉次有s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 網(wǎng)絡(luò)通訊(TCP/IP-IPv4,TCP 流)s.bind(ip, 10067) # 佛定地址(host,port)一套接室。s.list

14、en(lOOO)#開胎TCP藍(lán)聽。backlog指定戒拒皰接接之嗡,操作系疣可八激起的景 Vil接微量。while True:cs, addr = s.accept()# 狼劭接盤TCP客戶端速接,(雙索式)等將速接的割束user = json.loads(cs.recv(2048).decode("utf-8")# 檢已編鳴的JSON室符串解媽,Python對象 print('user:', user, 'is log in from:', addr)# 打印正戒乂客戶端於錄的用戶信息if user'username' =

15、allowedUserl'username' and user'password'= allowedUserl'password':# 判斷客戶端輸入的用戶名密鳴是否正確print('user-',user,'log in successfully, reply:l/) # ,正確則於錄就切 cs.send(b'ln')# 發(fā)送TCP微據(jù),揩'String中的微據(jù)發(fā)送刎接接的套接室。 _thread.start_new_thread(sendToClient, (cs, ip)# 建豆新狡程運行se

16、ndToClient模塊else:printf user-',user,log in failed, reply:0.')# 打印整錄失敗的用戶cs.send(b'On')# 發(fā)送TCP微據(jù),粉string4的熬據(jù)或送割速接的套接室。 cs.closed# 關(guān)閉接css.close()#關(guān)閉總接接雙網(wǎng)關(guān)於農(nóng)熬據(jù)源信息到密戶端fsendToClient&a;用戶周功於錄啟,則發(fā)送廢程被打開,網(wǎng)關(guān)需要周期H的向哈 戶端發(fā)送傳感器熬據(jù),鹿戶端才惚獲取實時數(shù)據(jù),從而實現(xiàn)激 據(jù)可視化。def sendToClient(s, user):print("A

17、send thread is created for user-", user)#梃示執(zhí)行sendToClient雷微,用戶將創(chuàng)建一個發(fā)送撥程 while True:s.send(str(dataFromSource) + 'rT).encode('UTF-8')# 微據(jù)源山UTF-8偏雞莊符串形式發(fā)送出去 print('徽據(jù):dataFromSource,發(fā)送給ip', ip)# 梃示熬據(jù)已感切發(fā)送time.sleep(7)# 間隔7秒執(zhí)行 Python i & ?。╩ain 房劇)一段具市多功健模塊的代雞要運行則需要嗡一個:西熬,4

18、 執(zhí)行時就是運行2曲叔,而不是一個個的功犍苗熬(曲烈沒嗡 先后順星),就是像排格一曲將先后需要運行的功怩模塊作名 i落劇的代碼寫腸數(shù)位整段代媽束是或老外殺。 Python 1 函微(main 函破)一段具市多功惚模塊的代碼要運行則需要市一個£西熬,程停 執(zhí)行時就是運行j徐叔,而不是一個個的功犍屬熬(西數(shù)救市 先后順本),就是像揶澤一曲特先后需要運行的功惚模塊作, i笛微的代媽寫中數(shù)左整段代碼末尾或者開頭。def main():get_ip() #先獲得網(wǎng)關(guān)ip地址printf服務(wù)器啟劭,ip:' + ip + ',熬據(jù)源遹信端口 :10068,客戶端遹信瑞口 :100

19、67')# 按制臺打印網(wǎng)關(guān)信息_thread.start_new_thread(getData,()# 開啟getData依程則動惚模塊會一直運行clientComm()# 使用客戶端與網(wǎng)關(guān)通訊梗塊4.23功能實施使程本運行2篩微要運行 < 笛烈則迎得加上一旬讓程本開船的時候就 直接找刎i胸劇開胎運行。if _name_ = '_main_main()43.1功能概述4.3智能酒店控制系統(tǒng)的網(wǎng)關(guān)開發(fā)。伴成房場寐網(wǎng)裁木的發(fā)展,旅行系兄是看風(fēng)建, 也是另一種皮活方式。作,旅行途中系可或缺的 隹霜環(huán)手,酒府也系苒仇奴是你息的場所,戛多 的是來戰(zhàn)房新的成活方式的空間,智怩涵府,旅

20、 客提供了更野逶的性霜體驗布離質(zhì)量的服務(wù)。客戶端密錄并發(fā)送錯求令網(wǎng)關(guān),網(wǎng)關(guān)對接收割的 環(huán)境殿據(jù)進(jìn)行處理,由用戶驗證正確時,特數(shù)據(jù) 發(fā)送令客戶端,客戶嫁接收并顯示。4.3.2功能設(shè)計.系挽翹架43.2功能設(shè)計02 ,網(wǎng)關(guān)功怩通括為微嗡溫液傳感器、濕或傳感器、憲熊極盛傳 感器、氣及傳感器、PM2.5傳感器,了臂怩控制球 旗。達(dá)到得適后他的目的,通過多個傳感器采集各 個假備熬據(jù),網(wǎng)關(guān)接收照據(jù),對環(huán)境狀態(tài)做出判斷 ,從而臂怩控制涵括核備。.打開上一節(jié)的工程 2.配置 config, txt 攵件03 .核備智犍捏喇遂何今折 :*4.網(wǎng)關(guān)功犍編寫 :*5 .微置微據(jù)源右客戶端,測信網(wǎng)關(guān)隹星宦的溫液智惚倜

21、節(jié)人體的野逡溫盛京25點上下,溫盛傳感器可。感知房 間內(nèi)溫度,乂而按喇中央室調(diào)出曖貳迷是出冷風(fēng)或左 也網(wǎng),。保證宦溫在25波左右4.3.3功能實施Begin獲得宦肉溫度IF宦內(nèi)溫液28/THEN中央空碉 吹舜至ELSE IF宦內(nèi)溫度22度THEN中央 空碉吹囁氣ELSE關(guān)閉空倜END IFEND IFif int(dataFromSource'0000') < 22: status = '0001':'吹曝鳳'else:if int(dataFromSource'0000') > 28: status = '0

22、001':政壽網(wǎng)'else:status = '0001':定出鳳'dataFromSource.update(status)433功能實施。寵氣臂犍加/除混變氣十濕程波也是影響人們?nèi)沼猩钜板叶傻囊淮蟑B 要因素,過俄的濕/亂過之的濕凌,人體都會感到系 逡,久而久之產(chǎn)塵慢植成癡,智怩控制加濕器,病或 氣濕波密時開啟除濕功犍,在生氣溫度俄時開啟加溫 切犍。Begin獲得宦肉濕度IF宦內(nèi)溫度55%THEN開啟加濕器 除濕功惚ELSE IF宦內(nèi)溫40% THEN開啟和 濕器加濕切惚ELSE關(guān)閉加濕器END IFif int(dataFromSource'

23、;0100') < 40: status =0101':'加濕中'else:if int(dataFromSource'0100') > 55: status ='010T:'除濕中'else:status = '0101':"M'dataFromSource.update(status)END IF?;氯鉄艟咦咱炕谌盏燮ぴ捴校森h(huán)境低于一定的亮波是需要開燈, 送時將送個外部卷源傳感器犍探測到的亮盛值殘置名 300,咨外部憲源迎亮的時候,宦內(nèi)無需苒開燈,送 時將外部先派傳感器

24、怩探測刎的亮波值微置,700, A區(qū)間300至700時則燈的開關(guān)無需置犍處理,Begin獲得宦外憲源強(qiáng)度熬他IF宦外兆源強(qiáng)盛劇值300THEN t 葉蜜向燈具ELSE IF宦外憲源穆盛烈值700THEN關(guān)閉宦內(nèi)燈具END IFEND IFif int(dataFromSource'0200') < 300: status = '0201':'0202':'0203':T5'else:if int(dataFromSource'0200') > 700: status = ,0201':&

25、#39;'0202':''0203':if status != :previous = statusdataFromSource.update(status)4.3.3功能實施凈化空上變氣質(zhì)量已周,日帝生話的一大美穗娟標(biāo),優(yōu)質(zhì)的變 先對人們的身體值朦至關(guān)唾要,咨PM2.5大于30時就 開啟變氣凈化器凈化微小顆攫,咨PM2.5很像的時候 可山自劭關(guān)閉變氣凈化器省電。Begin獲得宦肉PM2.5鼎他IF t>PM2.5>30THEN 開啟全氣凈化器ELSE關(guān)閉變氣凈化器END IFif int(dataFromSource'0400

26、9;) > 30: status = '0401?運行中'else:status = '0401':'關(guān)'dataFromSource.update(status)4.4創(chuàng)建日志記錄文件4.4.1功能概述。我被停運行中需要通過創(chuàng)建日志憶錄的方式及時 憶錄童要的技態(tài)倍息變化,。便森在序產(chǎn)皮向奧 時及時我到癥住所充。本功怩使用Python對網(wǎng)關(guān)所有的行,進(jìn)行日志和 錄,皮感.log文件。4.4.2功能設(shè)計。日志可。憶錄所市后臺功怩產(chǎn)成的倍息,只需魏 患logging模塊的用法,用戶可匈定義log格式并且 可我每一個模塊上瞬加log倍息,灌意語言

27、使用現(xiàn) 范。4.43功能實施打開上一節(jié)的工程 :. 2.由已置config, txt丈件 :.3 .修改功惚屬微 :*4 .微置數(shù)據(jù)源右修戶端,測信網(wǎng)關(guān)程序4.4.3功能實施:知擁名展:logging日志模塊介殆日志一易今欣5個等公,乂假割裔今別是;DEBUG INFO WARNING ERROR CRITICALo DEBUG/樣料的信息,通常只出現(xiàn)在馀斷冏駁上。 INFO;確伏一切按預(yù)期運行。 WARNING/ 一個跡象表現(xiàn)一的意想系割的多情發(fā)皮了,或表颯一 的問駁我不久的粉主。(倒電磁盤空間像)但這個軟件迷惋按預(yù)期 工作。 ERROR;更尹堂的問駁,軟件沒犍執(zhí)行一的切惚。 CRITICA

28、L; 一個尹堂的錯篌,送宏期程序律身可惚無法健候運行。這5個等公,也今別對應(yīng)5種打日志的方法;debug、info、warning, error, criticalo默伏的是WARNING,省雙WARNING或之上時才被砥導(dǎo)入logging梗塊import logging # 導(dǎo)入logging梗塊文福依置不與與次福格式定義log_file = './test.log'FORMAT = '%(asctime)s %(levelname)s %(name)s %(filename)s line %(lineno)d %(message)s'# 升博時間倍息您別名繇

29、運行次件名,裱次件的第幾行進(jìn)行逑 輸心自定義信息內(nèi)容logging.basicConfig(level=logging.INFO, filename=log_file, format=FORMAT)#筱置日志秋別;和錄info次福假置 格式名format Logging存例語句('get-'+ dataFromSource + ' from-'+ip+,:10068,)('可登錄用戶-'.format(allowedUser)fuser: is log in from 

30、9;.format(user, addr) logging.error(e)4.5用戶操作記錄數(shù)據(jù)庫4.5.1功能概述:客戶端進(jìn)行搖作之后將搖作內(nèi)容祀錄刎后臺是一 種腸的使用燈慣,咨遢到錯篌或者系規(guī)范的使用 情況時可。配合4.4節(jié)提供的日志功惚逐一狒重晨 國,修改代媽使程序更加黨善,同忖迷可心和錄 用戶的糅作的客,方便日后進(jìn)行數(shù)據(jù)今折,合折 用戶的使用習(xí)慣備內(nèi)察。:本功惚使用Python與MySQL數(shù)掂薜速接,并將帶 市時間戳的用戶據(jù)作和錄與用戶於錄和錄錄入微 據(jù)庫。4.5.2功能設(shè)計流程畫APP應(yīng)用數(shù)據(jù)庫命令數(shù)據(jù)反饋4.4.3功能實施 :*1 .打開上一節(jié)的工隹 2.配置 config.tx

31、t 攵件 :*3 .毫克殿據(jù)庫 :*4.編寫與數(shù)據(jù)薜玄至的相關(guān)功犍 :*5,微置數(shù)據(jù)源和客戶端,測裁網(wǎng)關(guān)程序4.4.3功能實施敏踞表的建克生段名就名段類型usernamevarcharpasswordvarcharstatusbinaryTiming (硬Jtimestamp莊段名卷生候類型passwordvarcharusernamevarchareqnumvarcharTiming (健)timestamp辱收也盤允許變值允許安值導(dǎo)入 mysql. connector 模塊import mysql.connector4.4.3功能實施這接數(shù)據(jù)滓db = mysql.connector.co

32、nnect) host="localhost",# localhost代表埼池 也可。 user="root",# 用戶名,漳地徽據(jù)犀it接用到的用戶名 passwd="root",# 密鳴需要砥埼也熬據(jù)薜密媽相同 database="userope"# 恭據(jù)薜需要嫉與剛剛建定的微據(jù)薜名)cursor = db.cursor()#創(chuàng)建一個db濤標(biāo),則可推輸入各種微據(jù)薜器令操作微據(jù)薜京clientComm房微里流加數(shù)據(jù)庫提作語句def clientComm():f = open('conf

33、ig.txt')f.readline()allowedUser = dict(username=f.readline().replace('n,"), password=f.readline().replace('n',")('可於錄用戶-尸.format(allowedllser)f.closef)s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.bind(ip, 10067)s.listen(lOOO)try:while True:cs, addr

34、 = s.accept()user = json.loads(cs.recv(2048).decode("utf-8")fuser: is log in from '.format(user, addr)#此處 logging需要用format輅式化if user'username' = allowedUsert'username' and user'password' = allowedUserl'password':fuser- log in succ

35、essfully, reply:l.'.format(user)cs.send(b'ln')sql = "INSERT INTO login (password,username,status) VALUES (%s,%s,%s)"# !Attention!無卷是微莊(包括整微和浮直感J、容符串 、日期忖間或其他G意類型,都應(yīng)該使用$占住符。val = (user'password', user'username', 1)# 用戶的密鳴,用戶的名客,1代表it接鼠切 cursor.execute(sql, val)#

36、港株執(zhí)行微據(jù)薜命令sql, val,參微 mit()# 微據(jù)薜更新一是要執(zhí)行commit才怩實現(xiàn)微據(jù)薜更新 print(cursor.rowcount, ”用戶於錄.切憶錄插入感功。")# print到控榭臺表示1用戶整錄御名_thread.start_new_thread(getFromClient, (cs, user)_thread.start_new_thread(sendToClient, (cs, user) else:fuser- log in failed, reply:0.'.format(user)# 此處,logging需要用fo

37、rmat楮式化cs.send(b'On')sql = "INSERT INTO login (password,username,status) VALUES (%s,%s,%s)val = (user'password', user'username', 0)# 用戶的密媽,用戶的名莊,0代表信息市篌接接失敗cursor.execute(sql, val)# 港標(biāo)執(zhí)行微據(jù)薜命令sql, val,參微mit()# 徽據(jù)薜更新一窕,要執(zhí)行commit才惚實現(xiàn)微據(jù)薜更新print(cursor.rowcount, “用戶於錄失收和錄插入鼠切

38、。")# print割控制臺表示1用戶整錄御名cs.closedexcept Exception as e:logging.error(e)finally:s.closed在getFromClient中和錄用戶對微備進(jìn)竹的糅作def getFromClient(s, user):("A get thread is created for user- ".format(user)while True:order = s.recv(8).decode('utf-8')# 一是要解碼,utf-8編碼,番則接收的TCP流無法直接使用 printfuser - 使微備改變 了 狀態(tài)'.format(user, order) sql = "INSERT INTO operation (password, username, eqnum) VALUES (%s,%s,%s)"# !Attention!無卷是微莊(包括整微和浮點感J、室符串、日 期時間或其他G意類型,都應(yīng)該使用5占住符。val = (u

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論