python筆記27(網路編程--網路基礎介紹)

来源:https://www.cnblogs.com/cuiyongchao007/archive/2020/03/10/12452759.html
-Advertisement-
Play Games

一、內容回顧 1、re模塊 2、正則分組 元字元、量詞、惰性符號 3、補充 [],[^]:帶有特殊意義的元字元到字元組內大部分取消其特殊含義。 如果擔心出現特殊含義:加\ 會取消的:[()+ . ] [( )] 的位置決定了它的意義,寫在字元組的第一個位置就表示一個普通的橫杠。 寫在字元組的其他任何 ...


一、內容回顧

1、re模塊

1.findall 找到所有符合規則的項,並返回列表
2.search 找到第一個符合規則的項,並返回一個對象
3.match 從頭開始,找到第一個符合規則的項,並返回一個對象
4.finditer 找到所有符合規則的項,並返回一個迭代器
5.compile 預編譯一個正則規則,節省多次使用同一個正則的編譯
6.sub 替換 預設替換所有,可以使用替換深度參數
7.bsub 替換返回元組
8.split 根據正則規則切割,返回列表,預設不保留切掉的內容

2、正則分組

1.分組命名,(?P<組名>正則)
2.引用分組,(?P=組名)
3.findall和分組,優先顯示分組中的內容,(?:)取消這個分組的優先
4.split和分組
split會保留正則中分組內匹配到的內容
5.search和分組
search取分組中的內容,通過索引取obj.group(1),通過組名取obj.group(‘組名’)

元字元、量詞、惰性符號

3、補充

[],[^]:帶有特殊意義的元字元到字元組內大部分取消其特殊含義。

如果擔心出現特殊含義:加
會取消的:[()+.] - [(-)] -的位置決定了它的意義,寫在字元組的第一個位置就表示一個普通的橫杠。- 寫在字元組的其他任何位置都是表示一個範圍。

正則表達式深入學習---《正則指引》

找出<h1>123fh</h1><h2>hado</h2>中所有標簽內的字元串   爬蟲
import re
ret=re.findall('<.*?>(.*?)<.*?>','<h1>123fh</h1><h2>hado</h2>')
print(ret)
找出四則運算表達式中的第一個乘除法
\d(\.\d+)?[*/]-?\d(\.\d+)?
檢測用戶輸入的是否為標準身份證號碼:
[1-9]\d{14}(\d{2}[\dx])?
#如果使用findall,^[1-9]\d{14}(\d{2}[\dx])?$
#建議使用match和search
match:[1-9]\d{14}(\d{2}[\dx])?$
search:^[1-9]\d{14}(\d{2}[\dx])?$

4、網路基礎

1.兩個運行中的程式如何傳遞信息?
    通過文件

2.兩台機器上的兩個運行中的程式如何通信?
    通過網路

網路應用開發架構
    C/S  迅雷 qq 瀏覽器 飛秋 輸入法 百度雲 pycharm git VNC 紅蜘蛛 各種游戲
        client 客戶端
        server 服務端
    B/S   淘寶 郵箱 各種游戲 百度 博客園 知乎 豆瓣 抽屜
        browser 瀏覽器
        server  服務端
    統一程式的入口

    B/S和C/S架構的關係
        B/S是特殊的C/S架構

網卡 :是一個實際存在在電腦中的硬體
mac地址 :每一塊網卡上都有一個全球唯一的mac地址
交換機 :是連接多台機器並幫助通訊的物理設備,只認識mac地址
協議 :兩台物理設備之間對於要發送的內容,長度,順序的一些約定

ip地址
    ipv4協議  位的點分十進位  32位2進位表示
    0.0.0.0 - 255.255.255.255

    ipv6協議 6位的冒分十六進位 128位2進位表示
    0:0:0:0:0:0-FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
公網ip
為什麼你的外地朋友的電腦我們訪問不了
    每一個ip地址要想被所有人訪問到,那麼這個ip地址必須是你申請的

內網ip
    192.168.0.0 - 192.168.255.255
    172.16.0.0 - 172.31.255.255
    10.0.0.0 - 10.255.255.255

交換機實現的arp協議
    通過ip地址獲取一臺機器的mac地址

網關ip 一個區域網的網路出口,訪問區域網之外的區域都需要經過路由器和網關
網段 指的是一個地址段 x.x.x.0  x.x.0.0  x.0.0.0
ip地址
子網掩碼 判斷兩台機器是否在同一個網段內的

255.255.255.0 子網掩碼
11111111.11111111.11111111.00000000

192.168.12.87
11000000.10101000.00001100.01010111
11111111.11111111.11111111.00000000
11000000.10101000.00001100.00000000   192.168.12.0

192.168.12.7
11000000.10101000.00001100.00000111
11111111.11111111.11111111.00000000
11000000.10101000.00001100.00000000  192.168.12.0

ip 地址能夠確認一臺機器
port 埠
    0-65535
    80
ip + port 確認一臺機器上的一個應用

5、socket基本結構

import socket
#伺服器端
sk=socket.socket() #買手機
sk.bind(('127.0.0.1',9000)) #綁定手機卡
sk.listen() #開機
conn,addr=sk.accept() #等著接電話
conn.send(b'hello') #發送信息
msg=conn.recv(1024) #接收信息
print(msg)
conn.close() #掛電話,關閉連接
sk.close() #關機,關閉socket
#客戶端
import socket

sk=socket.socket()
sk.connect(('127.0.0.1',9000)) #連接伺服器
msg=sk.recv(1024) #接收信息
print(msg)
sk.send(b'byebye') #發送信息
sk.close() #關閉socket

day27

一、內容回顧

1、re模塊

1.findall 找到所有符合規則的項,並返回列表
2.search 找到第一個符合規則的項,並返回一個對象
3.match 從頭開始,找到第一個符合規則的項,並返回一個對象
4.finditer 找到所有符合規則的項,並返回一個迭代器
5.compile 預編譯一個正則規則,節省多次使用同一個正則的編譯
6.sub 替換 預設替換所有,可以使用替換深度參數
7.bsub 替換返回元組
8.split 根據正則規則切割,返回列表,預設不保留切掉的內容

2、正則分組

1.分組命名,(?P<組名>正則)
2.引用分組,(?P=組名)
3.findall和分組,優先顯示分組中的內容,(?:)取消這個分組的優先
4.split和分組
split會保留正則中分組內匹配到的內容
5.search和分組
search取分組中的內容,通過索引取obj.group(1),通過組名取obj.group(‘組名’)

元字元、量詞、惰性符號

3、補充

[],[^]:帶有特殊意義的元字元到字元組內大部分取消其特殊含義。

如果擔心出現特殊含義:加
會取消的:[()+.] - [(-)] -的位置決定了它的意義,寫在字元組的第一個位置就表示一個普通的橫杠。- 寫在字元組的其他任何位置都是表示一個範圍。

正則表達式深入學習---《正則指引》

找出<h1>123fh</h1><h2>hado</h2>中所有標簽內的字元串   爬蟲
import re
ret=re.findall('<.*?>(.*?)<.*?>','<h1>123fh</h1><h2>hado</h2>')
print(ret)
找出四則運算表達式中的第一個乘除法
\d(\.\d+)?[*/]-?\d(\.\d+)?
檢測用戶輸入的是否為標準身份證號碼:
[1-9]\d{14}(\d{2}[\dx])?
#如果使用findall,^[1-9]\d{14}(\d{2}[\dx])?$
#建議使用match和search
match:[1-9]\d{14}(\d{2}[\dx])?$
search:^[1-9]\d{14}(\d{2}[\dx])?$

4、網路基礎

1.兩個運行中的程式如何傳遞信息?
    通過文件

2.兩台機器上的兩個運行中的程式如何通信?
    通過網路

網路應用開發架構
    C/S  迅雷 qq 瀏覽器 飛秋 輸入法 百度雲 pycharm git VNC 紅蜘蛛 各種游戲
        client 客戶端
        server 服務端
    B/S   淘寶 郵箱 各種游戲 百度 博客園 知乎 豆瓣 抽屜
        browser 瀏覽器
        server  服務端
    統一程式的入口

    B/S和C/S架構的關係
        B/S是特殊的C/S架構

網卡 :是一個實際存在在電腦中的硬體
mac地址 :每一塊網卡上都有一個全球唯一的mac地址
交換機 :是連接多台機器並幫助通訊的物理設備,只認識mac地址
協議 :兩台物理設備之間對於要發送的內容,長度,順序的一些約定

ip地址
    ipv4協議  位的點分十進位  32位2進位表示
    0.0.0.0 - 255.255.255.255

    ipv6協議 6位的冒分十六進位 128位2進位表示
    0:0:0:0:0:0-FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
公網ip
為什麼你的外地朋友的電腦我們訪問不了
    每一個ip地址要想被所有人訪問到,那麼這個ip地址必須是你申請的

內網ip
    192.168.0.0 - 192.168.255.255
    172.16.0.0 - 172.31.255.255
    10.0.0.0 - 10.255.255.255

交換機實現的arp協議
    通過ip地址獲取一臺機器的mac地址

網關ip 一個區域網的網路出口,訪問區域網之外的區域都需要經過路由器和網關
網段 指的是一個地址段 x.x.x.0  x.x.0.0  x.0.0.0
ip地址
子網掩碼 判斷兩台機器是否在同一個網段內的

255.255.255.0 子網掩碼
11111111.11111111.11111111.00000000

192.168.12.87
11000000.10101000.00001100.01010111
11111111.11111111.11111111.00000000
11000000.10101000.00001100.00000000   192.168.12.0

192.168.12.7
11000000.10101000.00001100.00000111
11111111.11111111.11111111.00000000
11000000.10101000.00001100.00000000  192.168.12.0

ip 地址能夠確認一臺機器
port 埠
    0-65535
    80
ip + port 確認一臺機器上的一個應用

5、socket基本結構

import socket
#伺服器端
sk=socket.socket() #買手機
sk.bind(('127.0.0.1',9000)) #綁定手機卡
sk.listen() #開機
conn,addr=sk.accept() #等著接電話
conn.send(b'hello') #發送信息
msg=conn.recv(1024) #接收信息
print(msg)
conn.close() #掛電話,關閉連接
sk.close() #關機,關閉socket
#客戶端
import socket

sk=socket.socket()
sk.connect(('127.0.0.1',9000)) #連接伺服器
msg=sk.recv(1024) #接收信息
print(msg)
sk.send(b'byebye') #發送信息
sk.close() #關閉socket

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1 "use strict" 2 3 //載入js文件 4 loadFile([ 5 "./js/lib/WebGL.js",//檢查 是否支持webGL 插件 6 "./js/lib/three_114.min.js",//3d庫 7 "js/func.js" 8 ], main); 9 10 / ...
  • 按鈕點選輸入,是一個非常簡單的控制項,20分鐘就能完成的一個控制項。先看效果: 根據以前的設定,通過json數據動態生成這兩個按鈕,示例中這兩個按鈕對應的json代碼: { label:'標題', value:'h2', defaultValue:'h2', inputName:'RxButtonSel ...
  • 記錄大話設計學習過程。 鏈接:https://pan.baidu.com/s/1JNaagbvOkwAHMBe6vdH8lg 提取碼:ko5t 如果能想到多一個動機去改變一個類,那麼這個類負責的職責就多於一個。 單一職責在企業里就能明顯的體現出來,HR一個類、開發人員一個類、項目經理一個類、測試人員 ...
  • 本人免費整理了Java高級資料,涵蓋了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo高併發分散式等教程,一共30G,需要自己領取。傳送門:https://mp.weixin.qq.com/s/osB-BOl6W-ZLTSttTkqMPQ 前 ...
  • 圖解Java設計模式之建造者模式 蓋房項目需求 傳統方式解決蓋房需求 傳統方式的問題分析 建造者模式基本介紹 建造者模式的四個角色 建造者模式原理類圖 建造者模式在JDK的應用和源碼分析 建造者模式的註意事項和細節 蓋房項目需求 1)需要建房子 :這一過程為打樁、砌牆、封頂2)房子有各種各樣的,比如 ...
  • 使用gRPC做微服務的內部通信 gRPC是一個由Google開源的遠程服務調用框架,具有多路復用和雙向流式通信的特性。 大家好,在本文中將為大家介紹為什麼我們應該使用gRPC代替RESTful或JSON,來開發微服務內部的通信介面。 什麼是gRPC? gRPC是一個高性能的、開源的、普遍通用的RPC ...
  • 1.一個小型網路水果超市,負責給用戶網上訂購蘋果、芒果、桃子、荔枝。用戶可以註冊成為會員,預約、訂購、查詢、取消等常規動作。請設計用例模型.1) 參與者2)用例圖3)一個重要的用例進行描述 2. 畫出類圖 一家公司有許多部門,通過部門名唯一的確定一個部門,每個部門有一名經理主管,也有的經理不管理任何 ...
  • P1034 矩形覆蓋 題目描述 在平面上有n個點(n include include include include using namespace std; int read(){ int x=0,f=1;char ch=getchar(); while(ch'9'){if(ch==' ')f= ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...