網(wǎng)絡(luò)通信

一.recode

1.正則符號(hào)
匹配字符:. \w \s \d (\b, ^, $, \B) \W \S \D [] [^]
控制次數(shù):* + ? {} *? +? ?? {N,}? {N,M}? {,N}? (在次數(shù)后加?代表次數(shù)盡可能少的去匹配)
分之:|
分組:() --> 分組,捕獲,重復(fù)(\數(shù)字)

正則符號(hào)的轉(zhuǎn)義:想要讓有特殊功能的符號(hào)表示它本身,就可以通過\去轉(zhuǎn)義
除了\和-,其他的符號(hào)放在[]都表示符號(hào)本身

2.re模塊
compile --> 將正則表達(dá)式轉(zhuǎn)換成對(duì)象
a.匹配相關(guān)的:match, fullmatch --> 返回值是匹配對(duì)象/None
span(), start(), end(), group(), string

b.查找:search(正則表達(dá)式, 字符串) --> 返回值是匹配對(duì)象/None
去字符串中查找滿足正則表達(dá)式的子串,如果有只第一個(gè)滿足條件的字符串的匹配對(duì)象

findall --> 獲取所有滿足正則條件的子串,返回一個(gè)元素是字符串的列表。如果正則中有分組,只取分組中的內(nèi)容
finditer --> 獲取所有滿足正則條件的子串, 返回一個(gè)迭代器,迭代器中的內(nèi)容是匹配對(duì)象

c.切割
split --> 按滿足正則條件的子串對(duì)字符串進(jìn)行切割

d.替換
sub(正則表達(dá)式, 替換值, 字符串)

image.png

二.socket服務(wù)器
socket又叫套接字,實(shí)現(xiàn)網(wǎng)絡(luò)通信的兩端就是套接字。分為服務(wù)器對(duì)應(yīng)的套接字和客服端對(duì)應(yīng)的套接字

python通過提供socket標(biāo)準(zhǔn)來支持socket編程。
socket編程即使用程序?qū)崿F(xiàn)服務(wù)器和客服端

import socket
寫一個(gè)服務(wù)器程序

1.創(chuàng)建服務(wù)器對(duì)應(yīng)的套接對(duì)象

socket(family,type)
familt: 設(shè)置ip類型 AF_INET(ipv4) -->默認(rèn)值 AF_INET6(ipv6)
type:設(shè)置傳輸類型 SOCK_STREAM(TCP可靠傳輸)-->默認(rèn)值 SOCK_DGRAM(UDP不可靠傳輸)


image.png

2.綁定ip和端口

bind((ip,端口))
ip:服務(wù)器的地址
端口:不同的端口用來區(qū)分電腦上不同服務(wù),取值范圍是0-65535,注意0-1024屬于著名端口(用來綁定特殊服務(wù)端口,不要隨便使用)
注意:同一時(shí)間同一個(gè)端口只能綁定一個(gè)服務(wù)器


image.png

3.監(jiān)聽請(qǐng)求

listen(個(gè)數(shù)) ---->需要通過數(shù)字設(shè)置服務(wù)器一次可以出來最大的請(qǐng)求個(gè)數(shù)


image.png

4.讓服務(wù)器一直處于啟動(dòng)狀態(tài)

5.接受客服端的請(qǐng)求

執(zhí)行到accept(),程序會(huì)停下來,直到客服端在請(qǐng)求這個(gè)服務(wù)器的時(shí)候才會(huì)往下執(zhí)行。返回會(huì)話和客服端的地址


image.png

6.服務(wù)器給客服端發(fā)送數(shù)據(jù)()

send(date) --->發(fā)送數(shù)據(jù)
date:需要發(fā)送數(shù)據(jù),要求是二進(jìn)制數(shù)據(jù)(bytes)

a.str 轉(zhuǎn) bytes:
bytes(字符串,encoding='utf8')
字符串.encode(編碼方式)
image.png

發(fā)送一張圖片

[圖片上傳失敗...(image-a2a3e8-1540380367083)]

7.接受客服端發(fā)送的消息

recv(字節(jié)數(shù))--->接受客服端發(fā)送的數(shù)據(jù),參數(shù)是用來設(shè)置一次能接受的最大字節(jié)數(shù)返回值是接受到的數(shù)據(jù),
接受到是二進(jìn)制

bytes 轉(zhuǎn) 字符串
str(二進(jìn)制,encoding='utf-8')
二進(jìn)制.decode(編碼方式)

注意:recv方法也會(huì)阻塞線程,程序允許到這兒會(huì)停下來等,等到對(duì)方發(fā)消息為止
image.png

三.socket客服端

import socket

1.創(chuàng)建客服端套接字

image.png

2.連接服務(wù)器

connect(地址)


image.png

3.接受服務(wù)器返回的數(shù)據(jù)

image.png

4.給服務(wù)器發(fā)送消息

image.png

四.socket服務(wù)器升級(jí)

import socket

1.創(chuàng)建服務(wù)器套接字

image.png

2.綁定地址

image.png

3.監(jiān)聽

image.png

讓服務(wù)器一直處于接聽狀態(tài)

image.png

五.接受圖片客服端

import socket


image.png

六.requsets請(qǐng)求

python中沒有一個(gè)標(biāo)準(zhǔn)庫來支持網(wǎng)絡(luò)請(qǐng)求,但是目前有個(gè)第三方庫,支持http

import socket

requests.get(url, params)
url-->請(qǐng)求地址
params -->客服端給服務(wù)器發(fā)送的數(shù)據(jù)(字典){參數(shù)名:值}


image.png

1.獲取響應(yīng)頭

image.png

2.拿二進(jìn)制形式的響應(yīng)體

image.png

3.拿字符串的形式的響應(yīng)體

image.png

4.拿json格式對(duì)應(yīng)python數(shù)據(jù)

image.png

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,591評(píng)論 19 139
  • 計(jì)算機(jī)網(wǎng)絡(luò)概述 網(wǎng)絡(luò)編程的實(shí)質(zhì)就是兩個(gè)(或多個(gè))設(shè)備(例如計(jì)算機(jī))之間的數(shù)據(jù)傳輸。 按照計(jì)算機(jī)網(wǎng)絡(luò)的定義,通過一定...
    蛋炒飯_By閱讀 1,369評(píng)論 0 10
  • 網(wǎng)絡(luò)編程 網(wǎng)絡(luò)編程對(duì)于很多的初學(xué)者來說,都是很向往的一種編程技能,但是很多的初學(xué)者卻因?yàn)楹荛L一段時(shí)間無法進(jìn)入網(wǎng)絡(luò)編...
    程序員歐陽閱讀 2,105評(píng)論 1 37
  • 最近一直堅(jiān)持寫作一直堅(jiān)持思考,這是成長的力量。 可最近在糾結(jié)一個(gè)事,受得到的大咖們邀請(qǐng)參加《不寫就出局》,寫作7年...
    錢程浩瀚閱讀 253評(píng)論 0 2
  • 大家好,我是一名二胎爸爸,陪伴家創(chuàng)始人阿昌,今天是2018年9月27日,是每天一篇文章第419篇 米聊比微信早兩個(gè)...
    陪伴家阿昌閱讀 202評(píng)論 0 0

友情鏈接更多精彩內(nèi)容