Python網絡編程入門

2021-02-23 大泥灣 Scream Club

Python 網絡編程入門:套接字(Socket)通信簡介

聲明:本編推送前半部分內容翻譯自: https://realpython.com/python-sockets/

在如今的課堂上,學生與老師使用網際網路的頻率越來越高,尤其是教育資源線上化,導致老師和學生要花很多時間在各個平臺之間,使用教學資源,提交線上作業等等。當然還有部分學生利用網際網路在做與學習無關的事。

所以針對於這個事實,我們希望更高效地進行日常教學,就不妨自己建立一個簡單的教室教學網絡平臺!

這樣一個平臺的優點包括:

1.所有的教學資源,作業評價,成績分析等全部可以整合到完全由教師控制的網絡應用上,教師的電腦就充當一個小型伺服器。

2.所有學生的移動終端須接入教師設置的本地網絡,防止學生利用網際網路做與學習無關的事(實時監測學生是否在線)

要做到這一步,首先就要實現計算機之間的通信,在這裡不過多介紹理論,先看一個最簡單的伺服器-客戶端的例子。

伺服器-客戶端架構是網際網路應用最基礎的架構,就像我們去餐廳吃飯,我們就是客戶,先找服務員點菜,服務員接受訂單後交給後廚,然後把做好的菜餚端上你的桌面。在網際網路應用中,客戶端(瀏覽器,網絡應用)向指定的伺服器發送請求,伺服器根據請求向客戶端返回所需要內容。

https://www.cnblogs.com/dalaoban/p/9331113.html

現在我們將在同一臺計算機上運行伺服器和客戶端程序。現在開始!

1.在現有工作路徑下新建一個文件夾,我們的伺服器和客戶端程序都將放到這個文件夾裡

2.新建兩個空白python文件,一個叫echo_server.py(伺服器代碼), echo_client.py(客戶端代碼)

在開始編寫代碼之前,我們需要學習另外一個小技能,通過命令行終端啟動程序。以蘋果系統為例,通過搜索打開終端

得到類似下面的界面

其實每一個終端界面就如同一個小客戶端,我們的電腦就是一個伺服器,因此我們可以同時開啟多個終端。

進入終端後,我們需要找到放置echo_server.py和echo_client.py的文件夾,在一個終端中使用ls命令

ls命令的功能是列出目前路徑下的所有文件與文件夾。因為我將先前的兩個python文件放到了「OneDrive-北京大學附屬中學」這個文件中,所以需要進到這個路徑中。

使用命令」cd OneDrive-北京大學附屬中學」來改變工作路徑.

事實上,您不需要完整地打出「OneDrive-北京大學附屬中學」,只需要打出部分字符然後按下」tab」鍵,系統會自動幫您補全信息。

因此您可以這樣連續使用ls+cd直到目標工作路徑。

下邊使用IDLE打開echo_server.py,咱們先來寫伺服器端的部分

將這部分代碼儲存好之後,可以在終端中運行,

這時伺服器將會隨時監測從客戶端傳遞的請求,然後將客戶端傳過來的信息原封不動的再傳回去,之後結束這個套接字進程。

下邊是一個簡易的客戶端程序,還是使用IDLE打開echo_client.py,並寫下以下代碼

寫好之後在終端中運行該客戶端程序

同時在伺服器端可以看到這次通信記錄

最後我們來讓這個伺服器-客戶端程序具備一點實際應用功能,

實時記錄學生是否在線!

將伺服器代碼更改一下,添加一個記錄在線學生信息的功能

這個伺服器程序同時執行著兩個功能,一個是實時準備接收和處理從各個客戶端傳遞過來的信息。另外每隔5秒鐘,在終端中列印出上一個記錄周期內登記的學生信息。

下面再來寫一個模擬學生登記的客戶端程序

這個客戶端在運行後,每隔1-3秒鐘不等時間,往伺服器傳遞一個學生的姓名。伺服器將在一個記錄周期內記錄這些信息,並輸出。

下面來看當伺服器和這個模擬客戶端同時運行一段時間後的結果。

伺服器程序                                                    

客戶端程序

可以看到,在伺服器輸出的信息中,每一個列表都記錄了在上一個周期內登錄的學生。這樣可以保證,只要學生5秒鐘(或任意時間)內不在線,馬上就可以找到他!

現在了解套接字編程的基本步驟後,之後就來發揮您的想像力,來實現您的種種想法吧!!

相關焦點

  • Python冬令營-網絡編程入門
    Python 網絡編程入門:套接字(Socket)通信簡介聲明:本編推送前半部分內容翻譯自: https://realpython.com
  • Python視頻教程網課編程零基礎入門數據分析網絡爬蟲全套Python...
    Python視頻教程網課編程零基礎入門數據分析網絡爬蟲全套Python視頻教程 2020年07月08日 11:00作者:黃頁編輯:黃頁
  • 電腦入門程式語言
    今天和大家介紹一下電腦入門編程學什麼語言更合適。首選python語言,python 是一門開源免費、通用型的腳本程式語言,現在社會上會python語言的人很吃香的。它上手簡單,功能強大,堅持「極簡主義」。
  • 十六本python入門學習書籍推薦,python入門新手必看
    隨著人工智慧時代的到來,python程式語言一步登天衝到編程排行榜第一名,因此更多朋友想轉行學習python程式語言的朋友,可以一起看一下:python入門新手必看的十六本python入門學習書籍1、python基礎教程司維所著圖書:本書包括Python程序設計的方方面面,首先從Python
  • Python零基礎編程——起步並搭建環境
    學python可選擇的方向廣,web方向、人工智慧方向、數據分析方向、網絡爬蟲等都是可以做的,且都屬於比較熱門且發展較好的從業方向。常見崗位:python開發工程師、人工智慧工程師、大數據分析工程師、爬蟲開發工程師、搜尋引擎工程師,等等2-主流程式語言有那些?2019 年 10 月 TIOBE 程序語言排行榜如下
  • Python 從零開始--入門篇
    why pthon為什麼是 python 呢,原因很簡單~嗯哼!就是很簡答相比於 C語言 的指針的混亂,和 Java 的繁瑣,python 更加適合作為非計算機專業的第一個入門的程式語言。(計算機專業最好還是以C語言為第一門語言入門為好,後面寫文章出來介紹)從語法上面來說也擁有更多的第三方庫,避免了很多「重複製造輪子「。能夠很快上手,很多系統也都內置了python環境,相關配置也很簡單。當然除了這些拿來吃飯也是很重要的,時代所需,生活所迫。
  • 書聲琅琅:好的Python入門教程
    好的Python入門教程,書聲琅琅教育番茄老師微信pykf20介紹,python語言現在應用非常廣泛,不管是大數據還是人工智慧,應用最多的語言還是python,因此對於許多小白來講,看到python從業者的高薪資,想要轉行,或者致力於python開發的朋友,如果要學習python,從零基礎開始,一定需要一套完整的學習路線。
  • python編程教程視頻公眾號教學
    注圖文來源網絡,侵刪                                                                                                                                                       Python學習手冊,講解了python基礎知識,也介紹了Scrapy
  • python入門書籍,輕鬆學python
    全民學python的熱潮已經開啟,然而,對於這種情況,還是有很多小夥伴私信我python到底該怎麼入門?沒接觸過編程能學會嗎?
  • Python推薦書籍從入門到進階(珍藏版)
    《Python編程:從入門到實踐》本書的講解很到位,不過就是在對一些簡單知識點的講解方面投入了過多的筆墨。書中練習的原始碼下載地址:ehmatthes.github.io/pcc這是英文版的勘誤表【網站:nostarch.com/pythoncras】:
  • 從Scratch開始零基礎編程學習、用Python入門
    有人朋友以前沒有任何的編程基礎,但是也想通過編程來實現自己的一些想法,做些工具解決自己的工具。那麼如何從零開始學習編程呢?筆者整理了下自己總結的回答資料,所以就有這篇文章。零基礎學習編程的,建議先找一門可見既所得的交互圖像式程式語言開始,拖拖控制項,雙擊進去補充寫幾行邏輯就行。比如我學編程開始就是已VB,Delphi入門的。
  • 初學者入門編程應該學C+ +、Java還是Python?
    而不同的程式語言,幹同一個活,編寫的代碼量,差距也很大。所以你要先認清楚自己要學習編程的初衷是什麼,然後客觀的分析做出相對合理的規劃。希望從底層學起,把編程當作一種信仰自己早就做好了未來的規劃,在未來想在這個行業有一番作為。
  • Python入門基礎之socket多線程編程,TCP伺服器和客戶端通信
    在上一篇文章中,我介紹了一下python3 socket編程的基礎,包括TCP、UDP客戶端和伺服器的建立過程(連結在最下方)。不過那個只是單線程的,伺服器一次只能和一個客戶端會話,多個客戶端的話只能等待。我們平時的應用中,伺服器肯定是要並發的,所以,今天將介紹socket編程的多線程編程。
  • Python遊戲編程
    Python遊戲編程課程目標本課程把遊戲開發實踐應用於python編程課程的教學之中,培養學生對編程的興趣
  • python初學者必看的學習路線 Python是近幾年比較火的程式語言
    Python是近幾年比較火的程式語言之一,因為人工智慧的火爆,讓很多人都想從事python開發。很多零基礎學員在學習python的時候都會走一些彎路,下面小編就為大家分享python學習路線圖,幫助零基礎學員在學習的時候少走彎路。 很多人都在問Python學習步驟應該如何安排?
  • 小數點Python編程入門(數據分析)第十七期開始啦
    網上有很多python入門課程,POINT推出python課程又有什麼亮點呢?首先,最最重要的一點,老師靠譜!本次課程的老師飛柳是我多年好友,他也是我的python啟蒙老師。如果沒有他在python和數據分析方向的幫助,我也許不會走上專業數據分析師的道路。此次課程之所以這麼難產,主要就是在於請他出山很難,整整磨了將近半年。
  • 入門Python, 看這些資料就夠了
    最後,平時有空可以看看awesome-python-cn和python-tip上的內容,作為入門之外的擴展,開闊自己的視野【實驗樓Python3教程】連結:Python3 簡明教程 (https://www.shiyanlou.com/courses/596)簡介: 提供了開箱即用的實驗環境 ,省去了搭建環境的麻煩。 偏重實戰。
  • python入門
    --Yves Hilpisch 《Python for Finance》發現近期學習python的人越來越多了,最近也有人問我有沒有啥課程或者書推薦的。我自己還是側重數據計算和在金融中的應用,系統管理、web開發等沒做過。我當年也是新手入門,自己搜索嘗試,買了很多的書,也在網上下載了很多資料。
  • python編程入門,零基礎學習Python基礎教程
    這裡推薦這門python編程入門基礎教程,適合零基礎的同學學習!python軟體工程師都學什麼?自學Python,看視頻學的更快、更透徹一些,給你個課程大綱!階段二:Python高級編程和資料庫開發Python全棧開發與人工智慧之Python高級編程和資料庫開發知識學習內容包括:面向對象開發、Socket網絡編程、線程、進程、隊列、IO多路模型、Mysql資料庫開發等。
  • Python語言如何入門
    閱讀本文大概需要5分鐘:Python 語言應該如何入門,記得我幾年前也碰到過這樣的問題,當時網上隨便搜了一下飢不擇食的找了一些書開始啃起來,結果發現很疑惑,感覺吃力,走了很多彎路。入門的書很多,但是我個人強烈推薦"A Byte of Python",這本書我讀了2遍,作者寫的思路非常清晰,對每一個知識點講解的很到位,不多不少,剛剛好,對初學者來說,力道剛剛好。而且是全英文,對提高自己的英語水平,很有幫助.