天才教育網(wǎng)合作機構 > 培訓機構 >

                                                                                        全國python學(xué)習中心

                                                                                        歡迎您!
                                                                                        朋友圈

                                                                                        400-850-8622

                                                                                        全國統一學(xué)習專(zhuān)線(xiàn) 9:00-21:00

                                                                                        位置:培訓資訊 > python網(wǎng)絡(luò )編程,Python 中的網(wǎng)絡(luò )編程

                                                                                        python網(wǎng)絡(luò )編程,Python 中的網(wǎng)絡(luò )編程

                                                                                        日期:2021-07-22 10:28:06     瀏覽:338    來(lái)源:全國python學(xué)習中心
                                                                                        核心提示:不管你是待業(yè)還是失業(yè),在這個(gè)被互聯(lián)網(wǎng)圍繞的時(shí)代里,選擇python網(wǎng)絡(luò )編程,就多了一項技能,還怕找不到工作?,還怕不好找工作?小編就來(lái)告訴你這個(gè)專(zhuān)業(yè)的優(yōu)勢到底體現在哪里:Python 中的網(wǎng)絡(luò )編程,Python基礎教程

                                                                                        不管你是待業(yè)還是失業(yè),在這個(gè)被互聯(lián)網(wǎng)圍繞的時(shí)代里,選擇python網(wǎng)絡(luò )編程,就多了一項技能,還怕找不到工作?,還怕不好找工作?小編就來(lái)告訴你這個(gè)專(zhuān)業(yè)的優(yōu)勢到底體現在哪里:Python 中的網(wǎng)絡(luò )編程,Python基礎教程,第十五講,網(wǎng)絡(luò )編程(一)Socket詳解,關(guān)于Python的3個(gè)謊言,別再盲目學(xué)Python了(含視頻及書(shū)籍資源)??。

                                                                                        1.Python 中的網(wǎng)絡(luò )編程

                                                                                        你怎么還在用Python寫(xiě)的單機版程序?因為我現在才剛學(xué)不久 現在開(kāi)發(fā)的基本上都是互聯(lián)網(wǎng)程序了,你要不要跟我一起學(xué)一下用Python網(wǎng)絡(luò )編程?哇!真的嗎?大佬求帶! 低調低調,說(shuō)到網(wǎng)絡(luò )編程,那么我們先要了解互聯(lián)網(wǎng)。我了解,互聯(lián)網(wǎng)就是把許多網(wǎng)絡(luò )連接起來(lái)。 恩,不錯,那你知道什么是TCP,UDP嗎?em,以前聽(tīng)過(guò),現在有點(diǎn)忘了,你可以給我說(shuō)道說(shuō)道嗎? 可以,我們以前的計算機網(wǎng)絡(luò ),為了能夠互相通信,很多廠(chǎng)商都有自己的一套協(xié)議,這就弄得很亂,因為互不兼容,所以通信起來(lái)很費勁。后來(lái)呢,為了讓成千上萬(wàn)的計算機連接起來(lái),定義了兩個(gè)標準的協(xié)議,一個(gè)是TCP,一個(gè)是 IP,也就是我們現在簡(jiǎn)稱(chēng)的 TCP/IP 協(xié)議。也就是說(shuō)我們遵循 TCP/IP 協(xié)議就可以互聯(lián)了是吧! 恩,通信的時(shí)候,雙方要知道對方的標識,才能通信。那。。大佬能告訴我下 TCP 和 IP 的區別嗎? 當然可以,那我先告訴你 IP 協(xié)議吧,假如我要發(fā)信息給你,我們都在互聯(lián)網(wǎng)上,都有自己的 IP 地址和路由,那么當我發(fā)信息給你的時(shí)候呢,IP 協(xié)議就負責將數據進(jìn)行傳輸,這些數據被分割成一小塊一小塊的,通過(guò) IP 包給發(fā)送過(guò)去。因為們之間在互聯(lián)網(wǎng)上是有很多鏈路的,所以路由就會(huì )將一小塊一小塊的數據包逐個(gè)進(jìn)行轉發(fā),直到發(fā)送到你的IP地址。但是它不能夠保證數據都能到達,也保證不了能夠按順序的到達。啊~那如果丟失怎么辦?有什么辦法嗎? 有!那就是 TCP 協(xié)議,TCP協(xié)議建立在IP協(xié)議之上的。TCP協(xié)議會(huì )建立可靠連接,保證數據包按順序到達。TCP協(xié)議會(huì )通過(guò)握手建立連接,確保對方按順序收到,如果包丟掉了,就自動(dòng)的重新再發(fā)。哦,明白了,那剛剛你說(shuō)的 UDP 又是? 我們已經(jīng)知道了 TCP 是面向連接的,比較可靠,而UDP協(xié)議呢,它是面向無(wú)連接的,也就是我只要知道你的IP地址和端口就可以直接給你發(fā)送數據了,不需要先跟你握手,不過(guò)數據能不能到達就不知道了。哦,明白,就是TCP可靠,UDP傳輸效率高。 對頭,所以呢,如果不要求數據可靠到達的話(huà)就可以用UDP。那么接下來(lái)我們就用 Python 來(lái)進(jìn)行 TCP 和 UDP 的編程吧。太好了??! 不過(guò)在此之前跟你講一下 Socket 的東西,因為等下我們要用到,Socket 在互聯(lián)網(wǎng)編程中表示建立了一個(gè)互聯(lián)網(wǎng)連接,Socket知道了對方的IP地址、端口號、協(xié)議,就可以建立連接了。恩,感謝大佬,明白了。 ok,那我們開(kāi)始吧!1 Python 中的 TCP 編程1.1 TCP客戶(hù)端的編寫(xiě)我們現在訪(fǎng)問(wèn)一些網(wǎng)頁(yè)什么的,這些網(wǎng)頁(yè)是在服務(wù)器端的,而我們訪(fǎng)問(wèn)的設備屬于客戶(hù)端。比如我們現在通過(guò)瀏覽器訪(fǎng)問(wèn)這個(gè)地址: Python 來(lái)建立可靠的 TCP 連接,獲取到這些圖片呢?# 導入socket這個(gè)庫 import socket # 創(chuàng )建一個(gè)socket對象 s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 開(kāi)始建立TCP連接 s.connect(("www.meizitu.com",80)) # 連接后,發(fā)送請求 s.send(b'GET / HTTP/1.1\r\nHost: www.meizitu.com\r\: close\r\n\r\n') # 接收數據 buffer = [] while True: d = s.recv(1024) if d: buffer.append(d) else: break # 把字節連接起來(lái) data = b''.join(buffer) # 關(guān)閉連接 s.close() # 把數據讀取出來(lái) with open('meizi.html','wb') as f: f.write(data) 運行之后,我么就有了咱們的妹紙文件:打開(kāi)有驚喜。 這就是建立TCP連接,然后客戶(hù)端向服務(wù)端發(fā)送請求的過(guò)程了。嗯嗯嗯,我懂了,我這就去試試,小姐姐等我。 瞧把你急的,服務(wù)端怎么寫(xiě)不了解一下?要啊,見(jiàn)笑見(jiàn)笑,我把紙巾收回去先。1.2 TCP 服務(wù)端的編寫(xiě)服務(wù)端一般都是一直在運行著(zhù)的,等待著(zhù)客戶(hù)端來(lái)連接,然后給出請求響應,服務(wù)端需要提供 ip 地址和端口給客戶(hù)端去連接。首先我們來(lái)寫(xiě)一個(gè)簡(jiǎn)單服務(wù)端的:import socket # 創(chuàng )建socket對象 s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 綁定監聽(tīng)端口 s.bind(('127.0.0.1',8888)) # 監聽(tīng) s.listen(1) while True: # 接收連接 sock,addr = s.accept() print("有人連進(jìn)來(lái)了") sock.send(b'hei man, are you ok?') sock.close當有人連接進(jìn)來(lái)我們就給他發(fā)一句:hei man,are you ok ?接著(zhù)我們再來(lái)寫(xiě)個(gè)客戶(hù)端的連接過(guò)去:# 導入socket這個(gè)庫 import socket # 創(chuàng )建一個(gè)socket對象 s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 開(kāi)始建立TCP連接 s.connect(("127.0.0.1",8888)) # 接收數據 buffer = [] d = s.recv(1024) buffer.append(d) # 把字節連接起來(lái) data = b''.join(buffer) print(data) # 關(guān)閉連接 s.close()然后先運行我們的服務(wù)端,再運行客戶(hù)端: 這就是TCP了,這里我就模擬自己一個(gè)人來(lái)連接,如果多個(gè)連接就要開(kāi)啟多個(gè)線(xiàn)程,懂了么?懂了懂了,謝謝大佬,給~ 肥皂就不必了,我是直男。不好意思,我剛剛拿錯了,對了,大佬,那我怎么使用Python來(lái)編寫(xiě)UDP協(xié)議的呢? 你已經(jīng)知道了 TCP ,那么 UDP 也差不多的,不過(guò)UDP更簡(jiǎn)單一些,它不需要建立可靠的連接,直接請求就可以了,我寫(xiě)個(gè)代碼給你看看吧。2 Python中的 UDP 編程我們來(lái)先寫(xiě)服務(wù)端:import socket # 創(chuàng )建socket對象,這里傳入的是SOCK_DGRAM,代表UDP s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) # 綁定監聽(tīng)端口 s.bind(('127.0.0.1',8090)) while True: # 接收連接 data,addr = s.recvfrom(1024) print(addr) s.sendto(b'hei man, are you ok?',addr)可以看到,在這里我們不需要跟對方連接,只要知道地址就直接發(fā)送過(guò)去就可以了??蛻?hù)端:import socket # 創(chuàng )建一個(gè)socket對象 s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) s.sendto(b'ha',("127.0.0.1",8090)) # 接收數據 print(s.recv(1024).decode('utf-8')) # 關(guān)閉連接 s.close()運行如下: 這就是UDP。感謝大佬,我去試一下 恩,去吧,少看點(diǎn)妹紙圖。關(guān)注我,讓你像看小黃文一樣輕松學(xué)到 Python 的所有!ps:還沒(méi)獲取我精心準備的 Python 電子書(shū)和思維導圖等干貨的可以在我的公眾號「學(xué)習Python的正確姿勢」中發(fā)送 python 免費獲取哦! 點(diǎn)贊,轉發(fā)到朋友圈是一種支持

                                                                                        2.Python基礎教程,第十五講,網(wǎng)絡(luò )編程(一)Socket詳解

                                                                                        網(wǎng)絡(luò )編程的重要性不低于數據庫操作,而且兩者通常是同時(shí)存在,比如用python寫(xiě)一個(gè)爬蟲(chóng)程序,最終抓取的數據保存入庫,寫(xiě)了一個(gè)web項目,用戶(hù)注冊,登錄,提交訂單等數據最終也要保存到我們的數據庫中,可見(jiàn)網(wǎng)絡(luò )編程的重要性。所以我會(huì )拿出三講的時(shí)間,分別介紹python中socket編程,爬蟲(chóng)和web服務(wù)器。 和大家一起理解網(wǎng)絡(luò )編程。學(xué)完此次課程,我能做什么?學(xué)完此次課程,我們可以使用socket建立一個(gè)簡(jiǎn)易的socket服務(wù)器和socket客戶(hù)端,并且可以進(jìn)行通信。學(xué)習此次課程,需要多久?5-10分鐘課程內容什么是socket?socket翻譯過(guò)來(lái)稱(chēng)為套接字,是一個(gè)基本的網(wǎng)絡(luò )組件,過(guò)于詳細的介紹大家可以百度一下,不在這里說(shuō)了,只講幾個(gè)項目中的重點(diǎn):socket提供長(cháng)連接,建立兩個(gè)點(diǎn)之間的信息通道;需要編寫(xiě)socket服務(wù)器端和socket應用端,可以理解為聊天程序的服務(wù)器和聊天程序的客戶(hù)端。為什么要使用socket?想一下如何實(shí)現一個(gè)web聊天程序?如果沒(méi)有websocket的相關(guān)知識,會(huì )不會(huì )很low的用ajax實(shí)現?每隔5秒請求一次服務(wù)器看有沒(méi)有消息返回。這樣做的缺點(diǎn)很明顯:死循環(huán),無(wú)限請求服務(wù)器,對服務(wù)器壓力增大。實(shí)時(shí)性差,無(wú)法*時(shí)間收到消息,需要等待下次循環(huán)??匆幌翧jax方式的示意圖:有了socket這個(gè)問(wèn)題就可以迎刃而解,首先客戶(hù)端與服務(wù)端建立長(cháng)鏈接,服務(wù)器可以接受信息,也可以主動(dòng)推送信息給已連接的客戶(hù)端程序,而客戶(hù)端可以主動(dòng)發(fā)送給服務(wù)器信息,也可以被動(dòng)的接受服務(wù)器的推送信息??匆幌耂ocket方式示意圖:很明顯socket和http相比是長(cháng)鏈接,雙向通信,11點(diǎn)58分11秒客戶(hù)端1給服務(wù)器發(fā)送了一條信息,服務(wù)器接收后立即推送給客戶(hù)端2,客戶(hù)端2通過(guò)接受方法,處理信息,顯示給用戶(hù),優(yōu)點(diǎn)是不是很明顯?趕緊學(xué)習一下如何使用吧。上面已經(jīng)說(shuō)過(guò)socket要編寫(xiě)服務(wù)端和客戶(hù)端的程序,那我們先寫(xiě)一下用于監聽(tīng)的服務(wù)端:注意點(diǎn):*步:創(chuàng )建socket鏈接s = socket.socket(family=AF_INET, type=SOCK_STREAM, proto=0, fileno=None)AF_INET:使用ipv4的方式通訊,默認即可。type:SOCK_STREAM 是 TCP方式, SOCK_DGRAM 是 UDP方式鏈接,關(guān)于tcp和udp的協(xié)議理解大家記住TCP數據傳輸可靠,效率低于UDP。相反UDP不確保數據是否傳輸成功,效率高。第二步:bind()函數,綁定ip地址和端口號,linux下端口號小于1024的為系統保留,使用需要root權限,為了保證程序正常運行,*使用1024以上的端口。第三步:list()函數,設置允許排隊等待鏈接的數量,由于accept為阻塞方法,所以要設置等待鏈接的數量,后面我們會(huì )講如何解決阻塞。第四步:接收信息,輸出信息??匆幌驴蛻?hù)端的代碼:客戶(hù)端相對來(lái)說(shuō)比較簡(jiǎn)單,創(chuàng )建鏈接后,使用connect()鏈接服務(wù)器即可??匆幌逻\行結果:服務(wù)端打印出客戶(hù)端發(fā)來(lái)的信息Hello,而客戶(hù)端輸出了 服務(wù)端返回的信息。使用python實(shí)現一個(gè)socket服務(wù)器就是這么簡(jiǎn)單,其他功能也是在這個(gè)基礎上來(lái)實(shí)現,無(wú)非是接受,轉發(fā),處理各類(lèi)消息。小結今天我們學(xué)習了,Python中的socket,了解了如何建立一個(gè)socket服務(wù)器程序,以及客戶(hù)端如何編寫(xiě),了解了整體的流程,后期我們會(huì )在這個(gè)基礎上結合wxpython來(lái)實(shí)現一個(gè)聊天軟件。接下來(lái)學(xué)習什么?接下來(lái),我們會(huì )學(xué)習一下大名鼎鼎的爬蟲(chóng),通過(guò)python如何快速實(shí)現一個(gè)簡(jiǎn)易爬蟲(chóng)。關(guān)注公眾號,回復 Python基礎 下載全部代碼+PDF版電子書(shū)

                                                                                        3.關(guān)于Python的3個(gè)謊言,別再盲目學(xué)Python了(含視頻及書(shū)籍資源)

                                                                                        本人18年自學(xué)Python,現在是一名前端開(kāi)發(fā)。雖然不是大佬,但我還是想先潑點(diǎn)冷水!不要被市面上的各種Python培訓廣告沖昏了頭腦:① 學(xué)完P(guān)ython,并不能立馬拿一兩萬(wàn)的工資,甚至可能找不到工作?、赑ython也沒(méi)有那么簡(jiǎn)單,不是有手就行?、蹌e想著(zhù)1個(gè)月、2個(gè)月就能學(xué)會(huì ),你至少得騰出半年時(shí)間全職學(xué)習!如果你還是執意要學(xué)Python,那么好,接下來(lái)我們看看怎么學(xué)。Python作為一門(mén)腳本語(yǔ)言,難度上相較于其他語(yǔ)言略微簡(jiǎn)單點(diǎn)。但對于沒(méi)有計算機基礎的人來(lái)說(shuō),可能最開(kāi)始配置Python編譯環(huán)境都能讓他望而卻步。這里推薦一個(gè)無(wú)需安裝配置的在線(xiàn)編程平臺(新手可以先在線(xiàn)寫(xiě)一段時(shí)間的代碼,適應下)邊學(xué)邊練,零基礎在線(xiàn)編程學(xué)習平臺 1、Python學(xué)習路線(xiàn)圖學(xué)習一定不是盲目的,只有先明確了要學(xué)哪些東西,怎么學(xué),才能更高效地去學(xué)Python。這是Python的整個(gè)知識體系圖譜,對于新手來(lái)說(shuō),沒(méi)必要學(xué)那么多。先把Python基礎和進(jìn)階知識吃透,才是入門(mén)的關(guān)鍵。后續你是往前端開(kāi)發(fā)深造,還是去新潮時(shí)髦的大數據、人工智能,就全憑自己的興趣。但我相信這時(shí)候的你,應該不會(huì )像現在這么迷茫。2、關(guān)于如何學(xué)Python其實(shí)網(wǎng)上的Python課程很多,都是比較有體系的。學(xué)Python入門(mén)和進(jìn)階的知識,用網(wǎng)課完全足夠。但Python本質(zhì)上是對一門(mén)語(yǔ)言工具的運用,實(shí)戰比理論更重要。我們在學(xué)習的時(shí)候一定要多敲、多練、多思考?。?!寫(xiě)代碼不只是跟著(zhù)視頻課或者照著(zhù)書(shū)本寫(xiě)完就行的,我們要理清每行代碼的邏輯。剛開(kāi)始學(xué),*對每一句代碼都加以注釋?zhuān)瑤椭覀兝砬暹壿?,加深印象。同時(shí),學(xué)完一個(gè)知識點(diǎn)后應該多去找對應的案例來(lái)練習,做到理論與實(shí)戰的深度結合。推薦一套免費的Python課:Python入門(mén)到精通137講 這套Python課的每一個(gè)知識點(diǎn)講完,都會(huì )有對應的實(shí)戰案例來(lái)練習,強烈推薦給新手!3、Python學(xué)習資源Python學(xué)習網(wǎng)站名稱(chēng)鏈接說(shuō)明代碼課堂 Py編碼規范中文版 Code Examples Module of the Week Py標準庫的使用菜鳥(niǎo)教程 cookbook》算法類(lèi):《算法圖解》《Python算法》《算法導論》計算機網(wǎng)絡(luò )書(shū)籍:《計算機網(wǎng)絡(luò ):自頂而下》《TCP/IP詳解1:協(xié)議》《計算機網(wǎng)絡(luò )基礎》*,自學(xué)Python最重要的就是心態(tài)。我們在學(xué)習過(guò)程中必然會(huì )遇到很多難題,可能自己想破腦袋都無(wú)法解決。這都是正常的,千萬(wàn)別急著(zhù)否定自己,懷疑自己。找一個(gè)靠譜點(diǎn)的師兄,沒(méi)事知乎一下,其實(shí)這些難題也就迎刃而解了。

                                                                                        就拿大數據說(shuō)話(huà),優(yōu)勢一目了然,從事IT行業(yè),打開(kāi)IT行業(yè)的新大門(mén),找到適合自己的培訓機構,進(jìn)行專(zhuān)業(yè)和系統的學(xué)習。

                                                                                        本文由 全國python學(xué)習中心 整理發(fā)布。更多培訓課程,學(xué)習資訊,課程優(yōu)惠,課程開(kāi)班,學(xué)校地址等學(xué)校信息,可以留下你的聯(lián)系方式,讓課程老師跟你詳細解答:
                                                                                        咨詢(xún)電話(huà):400-850-8622

                                                                                        如果本頁(yè)不是您要找的課程,您也可以百度查找一下:

                                                                                        奇米在线7777在线精品|国产成人精品免费视|精品无码不卡一区二区三区|国内综合精品午夜久久资源|亚洲视频在线观看..