python 網絡編程基礎

1. 內容回顧補充

[] [^] 帶有特殊意義的元字符到字符組內大部分都會取消它的特殊意義。python

會取消的:git

  • [()+*.]
  • -[(-)] -的位置決定了它的意義,寫在字符組的第一個位置/最後一個位置就表示一個普通的橫槓,寫在字符組的其餘任何位置都表示一個範圍。

2. 課前默寫小練習

# 1.找出<h1>123fh</h1><h2>hado</h2>中全部標籤內的字符串   爬蟲  
import re
ret = re.findall('<.*?>(.*?)<.*?>','<h1>123fh</h1><h2>hado</h2>')
print(ret)

# 2.找出四則運算表達式中的第一個乘除法
\d+(\.\d+)?[*/]\d(\.\d+)?
\d+(\.\d+)?[*/]-?\d(\.\d+)?
import re
ret = re.search('\d+(\.\d+)?[*/]-?\d(\.\d+)?','2-3*-5/6')
print(ret.group())

# 3.檢測用戶輸入的內容是不是一個合法的身份證號     網頁的合法輸入(手機號碼 qq號碼 銀行卡號 郵箱地址)
'^[1-9]\d{14}(\d{2}[\dx])?$'
import re
inp = input('>>>').strip()
re.match('[1-9]\d{14}(\d{2}[\dx])?$',inp)   # 首選
re.search('^[1-9]\d{14}(\d{2}[\dx])?$',inp)
re.findall('^[1-9]\d{14}(\d{2}[\dx])?$',inp)

3. 今日內容—網絡基礎

網絡基礎是爲將來的web框架的學習、將來的工做場景作鋪墊。web

1.兩個運行中的程序如何傳遞信息?瀏覽器

經過文件(一個程序將信息寫入文件,另外一個程序讀取文件獲取信息。)網絡

2.兩臺機器上的兩個運行中的程序如何通訊?架構

經過網絡框架

3.網絡應用開發架構socket

  • C/S :client 客戶端 server 服務端學習

    如:迅雷 qq 瀏覽器 飛秋 輸入法 百度雲 pycharm git VNC 紅蜘蛛 各類遊戲code

  • B/S:browser 瀏覽器 server 服務端

    如:淘寶 郵箱 各類遊戲 百度 博客園 知乎 豆瓣 抽屜

  • 將來網絡應用的趨勢:統一程序的入口

  • B/S 和 C/S 架構的關係:

    B/S是特殊的C/S架構

4.網絡名詞概念

  • 網卡 :是一個實際存在在計算機中的硬件

  • mac地址 :每一塊網卡上都有一個全球惟一的mac地址

  • 交換機 :是鏈接多臺機器並幫助通信的物理設備,只認識mac地址

  • 什麼是協議?

    server 和 client 獲得的內容都是二進制,因此每一位表明什麼內容,對於計算機來講,必須先約定好再按照約定進行發送和解析。

  • 協議 :兩臺物理設備之間對於要發送的內容,長度,順序的一些約定

  • ip地址:

    • ipv4協議 4位的點分十進制 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地址

    交換機的三種通信模式:廣播、單播、組播

    arp協議:地址解析協議

  • 網關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 端口 (確認一個應用)

    port 範圍:0-65535

  • ip + port 確認一臺機器上的一個應用

5.小練習

server服務端 與 client客戶端 之間信息的發送與接收

# server.py 服務端
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()      # 關機  (關掉服務端)

# client.py 客戶端
import socket
sk = socket.socket()
sk.connect(('127.0.0.1',9000))

msg = sk.recv(1024)
print(msg)
sk.send(b'byebye')

sk.close()

注意:server服務端 與 client客戶端 同時運行,先打開server服務端,再client客戶端 。

相關文章
相關標籤/搜索