成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁(yè) > 知識(shí)庫(kù) > Python實(shí)現(xiàn)socket庫(kù)網(wǎng)絡(luò)通信套接字

Python實(shí)現(xiàn)socket庫(kù)網(wǎng)絡(luò)通信套接字

熱門標(biāo)簽:市場(chǎng)上的電銷機(jī)器人 北瀚ai電銷機(jī)器人官網(wǎng)手機(jī)版 佛山400電話辦理 朝陽(yáng)手機(jī)外呼系統(tǒng) 地圖標(biāo)注面積 所得系統(tǒng)電梯怎樣主板設(shè)置外呼 儋州電話機(jī)器人 北京電銷外呼系統(tǒng)加盟 小蘇云呼電話機(jī)器人

Socket 套接字:通訊端點(diǎn) 簡(jiǎn)介

socket起源于Unix,而Unix/Linux基本哲學(xué)之一就是“一切皆文件”,對(duì)于文件用【打開】【讀寫】【關(guān)閉】模式來(lái)操作。socket就是該模式的一個(gè)實(shí)現(xiàn),socket即是一種特殊的文件,一些socket函數(shù)就是對(duì)其進(jìn)行的操作(讀/寫IO、打開、關(guān)閉)。

Socket 是任何一種計(jì)算機(jī)網(wǎng)絡(luò)通訊中最基礎(chǔ)的內(nèi)容。Socket通訊一般用戶C/S結(jié)構(gòu)系統(tǒng)的網(wǎng)絡(luò)通訊。

Socket 網(wǎng)絡(luò)通訊是基于TCP(傳輸控制協(xié)議)或UDP(用戶數(shù)據(jù)報(bào)協(xié)議)兩種協(xié)議通訊,所以有 面向連接(TCP )與無(wú)連接(UDP ) 兩種通訊方式。

Python 要?jiǎng)?chuàng)建TCP 套接字就得在創(chuàng)建的時(shí)候,指定套接字類型為SOCK_STREAM,它使用 TCP/IP通訊協(xié)議。

Socket網(wǎng)絡(luò)通信套接字

socket庫(kù)提供了一個(gè)底層C API,可以使用BSD套接字接口實(shí)現(xiàn)網(wǎng)絡(luò)通信。它包括socket類,用于處理具體的數(shù)據(jù)通道,還包括用來(lái)完成網(wǎng)絡(luò)相關(guān)任務(wù)的函數(shù),如將一個(gè)服務(wù)器名轉(zhuǎn)換為一個(gè)地址以及格式化數(shù)據(jù)以便在網(wǎng)絡(luò)上發(fā)送。

什么是套接字?

套接字是程序在本地或者通過(guò)互聯(lián)網(wǎng)來(lái)回傳遞數(shù)據(jù)時(shí)所用通信通道的一個(gè)端點(diǎn)。

套接字有2個(gè)主要屬性用于控制如何發(fā)送數(shù)據(jù):地址簇(address family)控制所用的OSI網(wǎng)絡(luò)層協(xié)議;套接字類型(socket type)控制傳輸層協(xié)議。(參考《計(jì)算機(jī)網(wǎng)絡(luò)》7層協(xié)議)

地址簇

Python支持3個(gè)地址簇:

  • AF_INET:用于IPv4尋址。IPv4長(zhǎng)度為4個(gè)字節(jié),通常表示為4個(gè)數(shù)的序列,每個(gè)字節(jié)對(duì)應(yīng)一個(gè)數(shù),用點(diǎn)號(hào)分割(如121.63.0.243)。這些值通常被稱為IP地址。目前IPv4依舊還是主流。
  • AF_INET6:用于IPv6尋址。目前IPv6已經(jīng)小范圍應(yīng)用,它支持128位地址和通信流調(diào)整,還支持IPv4不支持的一些路由特性。
  • AF_UNIX:用于UNIX域套接字(UDS)的地址簇,這是一種POSIX兼容系統(tǒng)上的進(jìn)程間通信協(xié)議。UDS的實(shí)現(xiàn)通常允許操作系統(tǒng)直接從進(jìn)程向進(jìn)程間傳遞數(shù)據(jù),而不用通過(guò)網(wǎng)絡(luò)棧。這比使用AF_INET更高效,但是由于要用到文件系統(tǒng)作為尋址的命令空間,所以UDS僅限于同一個(gè)系統(tǒng)上的進(jìn)程。

套接字類型

套接字類型有兩種:

  • SOCK_DGRAM:面向消息的數(shù)據(jù)報(bào)傳輸,數(shù)據(jù)報(bào)套接字通常與UDP關(guān)聯(lián),即用戶數(shù)據(jù)報(bào)協(xié)議。這些套接字能提供不可靠的消息傳送。
  • SOCK_STREAM:面向流的傳輸,與TCP相關(guān),即傳輸控制協(xié)議。它們可以在客戶和服務(wù)器之間提供字節(jié)流,通過(guò)超時(shí)管理,重傳和其他特性確保提供消息傳送或失敗通知。

大多數(shù)應(yīng)用協(xié)議(如HTTP)都建立在TCP基礎(chǔ)上,因?yàn)檫@樣更容易創(chuàng)建自動(dòng)處理消息排序和傳送的復(fù)雜應(yīng)用。

UDP通常用于順序不太重要的協(xié)議(如DNS交換)。UDP與TCP都支持IPv4與IPv6。

套接字的簡(jiǎn)單應(yīng)用

gethostbyname_ex()與gethostbyname()

socket庫(kù)包含一些與網(wǎng)絡(luò)上的域名服務(wù)交互的函數(shù),比如解析域名為IP地址可以用到gethostbyname_ex(),示例如下:

import socket

host_str = [
    'www.baidu.com',
    'cloud.tencent.com',
    'www.csdn.net'
]
for host in host_str:
    try:
        name, aliases, addresses = socket.gethostbyname_ex(host)
        print(host)
        print("主機(jī)名:", name)
        print("所有別名:", aliases)
        print("所有可用IP地址:", addresses)
    except socket.error as msg:
        print(host, msg)

運(yùn)行之后,效果如下:

gethostbyname_ex:該函數(shù)返回3個(gè)參數(shù),主機(jī)名,別名,以及解析能跳轉(zhuǎn)到當(dāng)前主機(jī)的IP地址。

gethostbyname:類似的函數(shù),只返回當(dāng)前主機(jī)的IP地址。

getservbyname()與getservbyport()

socket庫(kù)提供getservbyname()函數(shù)用于查找網(wǎng)絡(luò)服務(wù)的端口號(hào)和標(biāo)準(zhǔn)名,示例如下所示:

import socket
from urllib.parse import urlparse

url_str = [
    'https://www.baidu.com',
    'https://www.csdn.net',
    'smtp://smtp.qq.com',
]
for url in url_str:
    try:
        parsed_url = urlparse(url)
        port = socket.getservbyname(parsed_url.scheme)
        print(url)
        print("端口號(hào):", port)
    except socket.error as msg:
        print(url, msg)

運(yùn)行之后,效果如下:

當(dāng)然,其實(shí)最有用的并不是給定一個(gè)鏈接去查詢端口號(hào),而是逆向操作。(因?yàn)闃?biāo)準(zhǔn)化服務(wù)端口號(hào)一般都是固定的)

socket庫(kù)提供getservbyport()函數(shù)用于完成逆向的服務(wù)端口查找,示例代碼如下所示:

import socket

url = '{}://smtp.qq.com'.format(socket.getservbyport(25))
print(url)

運(yùn)行之后,效果如下:

getprotobyname()

socket庫(kù)還可以使用getprotobyname()函數(shù)獲取分配給一個(gè)傳輸協(xié)議的端口號(hào),示例如下:

import socket

#獲取匹配開頭字符串的所有屬性值
def getConstants(prefix):
    return {
        getattr(socket, n): n
        for n in dir(socket)
        if n.startswith(prefix)
    }
ipproto_str = getConstants("IPPROTO_")
for agree in ['tcp', 'udp']:
    num = socket.getprotobyname(agree)
    name = ipproto_str[num]
    print(name, num)

運(yùn)行之后,效果如下:

對(duì)于協(xié)議碼,在程序定義中一般都是標(biāo)準(zhǔn)化常量,這就是意味著,它們的常量名都有一定的規(guī)律,而socket協(xié)議碼前綴是IPPROTO_。

getaddrinfo(查找服務(wù)器地址)

getaddrinfo()函數(shù)用于將一個(gè)服務(wù)的基本地址轉(zhuǎn)換為一個(gè)元組列表,其中包含建立一個(gè)連接所需要的全部信息。比如其網(wǎng)絡(luò)簇與協(xié)議等,示例如下:

import socket

# 獲取匹配開頭字符串的所有屬性值
def getConstants(prefix):
    return {
        getattr(socket, n): n
        for n in dir(socket)
        if n.startswith(prefix)
    }
ipproto_str = getConstants("IPPROTO_")
family_str = getConstants("AF_")
type_str = getConstants("SOCK_")
for response in socket.getaddrinfo('www.csdn.net', 'http', family=socket.AF_INET, type=socket.SOCK_STREAM,
                                   proto=socket.IPPROTO_TCP, flags=socket.AI_CANONNAME):
    family, socktype, ipproto, canonname, sockaddr = response
    print("地址簇:       ", family_str[family])
    print("套接字類型:    ", type_str[socktype])
    print("協(xié)議碼:       ", ipproto_str[ipproto])
    print("主機(jī)規(guī)范名:    ", canonname)
    print("ip地址與端口號(hào):", sockaddr)

運(yùn)行之后,效果如下:

這里如果只用socket.getaddrinfo(‘www.csdn.net', ‘http'),表示不需要過(guò)濾任何連接信息,但大型的網(wǎng)站一般都有幾個(gè)IP或者域名跳轉(zhuǎn)到主頁(yè)的。

所以通過(guò)后面的參數(shù),可以篩選自己需要的鏈接信息。

其中,最后一個(gè)參數(shù)socket.AI_CANONNAME表示如果主機(jī)有別名,那么結(jié)果中會(huì)包含服務(wù)器的標(biāo)準(zhǔn)名。所有沒(méi)有這個(gè)標(biāo)志,標(biāo)準(zhǔn)名為空。

IP地址的表示方式

如果讀者有C的經(jīng)驗(yàn),那么肯定知道,通過(guò)C語(yǔ)言編寫的套接字程序是使用struct sockaddr結(jié)構(gòu)體,它將IP地址表示為二進(jìn)制,而不是上面顯示的Python字符串形式。

如果想在Python和C之間轉(zhuǎn)換IPv4地址,可以使用inet_aton()和inet_ntoa()。示例如下:

import socket
import binascii

ip_list = [
    "192.168.50.1",
    "127.0.0.1"
]
for ip in ip_list:
    packed = socket.inet_aton(ip)
    print("原始字符串ip地址:", ip)
    print("C庫(kù)能識(shí)別的ip地址", binascii.hexlify(packed))
    print("還原C庫(kù)ip地址字符串", socket.inet_ntoa(packed))
    print()

運(yùn)行之后,效果如下:

inet_pton()與inet_ntop()

相信讀者如果在測(cè)試上面代碼,那么輸入上面inet_aton()函數(shù)時(shí),一定看到提醒中還有inet_pton()與inet_ntop()函數(shù)。

這2個(gè)函數(shù)既能處理IPv4也能處理IPv6,而inet_aton()和inet_ntoa()只能處理IPv4。它們的使用方式如下:

import socket
import binascii

ipv6_str = "2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b"
packed = socket.inet_pton(socket.AF_INET6, ipv6_str)
print("原始字符串ip地址:", ipv6_str)
print("C庫(kù)能識(shí)別的ip地址", binascii.hexlify(packed))
print("還原C庫(kù)ip地址字符串", socket.inet_ntop(socket.AF_INET6, packed))
print()

ipv4_str = "192.168.50.1"
packed = socket.inet_pton(socket.AF_INET, ipv4_str)
print("原始字符串ip地址:", ipv4_str)
print("C庫(kù)能識(shí)別的ip地址", binascii.hexlify(packed))
print("還原C庫(kù)ip地址字符串", socket.inet_ntop(socket.AF_INET, packed))
print()

運(yùn)行之后,效果如下:

以上就是Python實(shí)現(xiàn)socket庫(kù)網(wǎng)絡(luò)通信套接字的詳細(xì)內(nèi)容,更多關(guān)于Python socket庫(kù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • 分析python并發(fā)網(wǎng)絡(luò)通信模型
  • Python中socket網(wǎng)絡(luò)通信是干嘛的
  • 教你使用Python建立任意層數(shù)的深度神經(jīng)網(wǎng)絡(luò)
  • Python利用PyQt5制作一個(gè)獲取網(wǎng)絡(luò)實(shí)時(shí)數(shù)據(jù)NBA數(shù)據(jù)播報(bào)GUI功能
  • python網(wǎng)絡(luò)通信圖文詳解

標(biāo)簽:云南 龍巖 酒泉 寧夏 金融催收 定西 江蘇 商丘

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python實(shí)現(xiàn)socket庫(kù)網(wǎng)絡(luò)通信套接字》,本文關(guān)鍵詞  Python,實(shí)現(xiàn),socket,庫(kù),網(wǎng)絡(luò)通信,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python實(shí)現(xiàn)socket庫(kù)網(wǎng)絡(luò)通信套接字》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Python實(shí)現(xiàn)socket庫(kù)網(wǎng)絡(luò)通信套接字的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷色在线观看| 国产成人啪午夜精品网站男同| 石原莉奈在线亚洲二区| 天堂在线中文| 亚洲白虎美女被爆操| 黄色高清视频网站| 国产资源在线视频| 国产a精品视频| 在线免费不卡视频| 欧美精品久久久久久久免费观看| 欧美一级淫片免费视频黄| 香蕉综合视频| 亚洲精品在线视频免费观看| 五月天婷婷久久| 欧美成人直播| 97超视频免费观看| 性活交片大全免费看| 在线亚洲色图| 中文精品电影| 麻豆视频在线播放| 欧美不卡一区二区| 欧美一区二区三区日韩视频| 亚洲图片第一页| 在线观看污视频| 成年人在线网站| 欧美在线欧美在线| 91亚洲人电影| 岛国一区二区三区| 国产三级精品视频| 亚洲精品乱码久久久久久蜜桃欧美| 午夜精品福利在线视频| 黄色小说综合网站| 免费成人进口网站| 在线播放91| 伊人精品在线视频| 国产1区2区3区精品美女| 婷婷丁香一区二区三区| www.就去干.com| 欧洲精品一区二区三区久久| 欧美亚洲国产视频小说| 超碰在线国产| 九九视频精品在线观看| 亚洲高清999| 在线免费91| 国产精品久久久久久久免费大片| 捆绑调教美女网站视频一区| 女人扒开屁股爽桶30分钟| 国产无套丰满白嫩对白| 色婷婷色综合| 日本一区视频| 久久这里有精品视频| 午夜免费精品视频| 亚洲欧美精品伊人久久| 国产字幕中文| 中文在线аv在线| 亚洲第一二三四五区| 国产成人综合欧美精品久久| 精品成人自拍视频| 欧美日韩导航| 国产另类ts人妖一区二区| 成人av中文字幕| 欧美华人在线视频| 六月丁香婷婷色狠狠久久| 中文字幕男人天堂| 亚洲精品免费一区二区三区| 91九色蝌蚪在线| 亚洲精品高清国产一线久久| 久操手机在线视频| 成人黄色小视频| 2020久久国产精品| 国产66精品| 奇米精品一区二区三区四区| 国产吞精囗交久久久| 国产精品一区二区午夜嘿嘿嘿小说| 欧洲黄色一级视频| 亚洲综合丁香婷婷六月香| 91精品视频在线播放| 91国语精品自产拍在线观看性色| 久草中文综合在线| 国产免费电影网站入口| 国产精品视频一区麻豆| 中文字幕在线看| 中文字幕一区二区三区在线不卡| 久久99国产视频| 在线观看成年人网站| 女人18毛片水真多免费播放| 天天射天天爱天天射干| 青青青国产精品一区二区| 免费在线播放第一区高清av| 日韩精品91| 亚洲激情成人| 国产在线小视频| 色丁香久综合在线久综合在线观看| 久久aⅴ乱码一区二区三区| 黄色亚洲免费| 亚洲国产成人精品一区二区三区| 女女同性女同一区二区三区按摩| 色开心亚洲综合| 欧美激情一区在线观看| 欧美videos极品另类| 无码人妻精品一区二区蜜桃色欲| 99国产精品私拍| 91这里只有精品| 日本一区二区不卡在线| 男人添女人下部视频免费| 九九精品在线| 久久久久久久久久久9不雅视频| 97国产在线| 日韩欧美激情四射| 巨茎人妖videos另类| 亚洲乱码国产乱码精品天美传媒| 久久综合国产精品台湾中文娱乐网| 色视频免费在线观看| xxxx性bbbb欧美野外| 色婷婷av一区二区三区软件| 亚洲色婷婷久久精品av蜜桃| 免费毛片小视频| 精品无人乱码| 国产又爽又黄无码无遮挡在线观看| 1769国产精品| 黑丝美女久久久| 2021国产精品视频| 色七七在线观看| 国产日韩欧美黄色| 97人人爽人人澡人人精品| 国产精品无码av在线播放| 伊人免费在线观看高清版| 日日骚一区二区三区| 欧美日韩日日夜夜| 看**视频a级毛片| caoporn超碰国产公开| 亚洲成人av免费看| www精品久久| 亚洲欧洲在线看| 成人性生交大片免费网站| 日本电影亚洲天堂一区| 99久久久久久中文字幕一区| 久久久婷婷一区二区三区不卡| 色偷偷av一区二区三区乱| 超碰在线一区二区三区| 天堂av在线7| 亚洲色偷精品一区二区三区| 久久久久久久久久久黄色| 疯狂做受xxxx高潮欧美日本| 免费久久久久久| 一级做a免费视频| 成人18夜夜网深夜福利网| 欧美一区二区三区成人久久片| 日韩在线观看一区二区| 国产精品丝袜黑色高跟| 一区二区三区欧美亚洲| 精品香蕉一区二区三区| 日韩在线视频免费观看| 欧洲亚洲两性| 国产黄色片在线观看| 久久精品国产视频| 外国成人毛片| 国产成人无码www免费视频播放| 婷婷成人影院| 久久九九有精品国产23| 亚洲第一天堂在线观看| 一区二区亚洲视频| 7777精品伊人久久久大香线蕉最新版| 成本人h片动漫网站在线观看| 日韩一区二区不卡视频| 日韩欧美三级视频| 日日操免费视频| 欧美电影免费| 亚洲国产欧美91| 一区中文字幕| 高清国产午夜精品久久久久久| 欧美成人se01短视频在线看| 天堂在线精品| 制服丝袜综合日韩欧美| 97人人精品| 国内精品国产成人国产三级粉色| 天天插天天操天天射| 欧亚精品一区| h色视频在线观看| 日韩肉感妇bbwbbwbbw| 蜜桃臀一区二区三区| 欧美一区二区三| 欧美性猛交p30| 亚洲区免费视频| 欧美乱妇高清无乱码免费| 精品久久久久久久免费人妻| 奇米影视首页 狠狠色丁香婷婷久久综合| 99re6热只有精品免费观看| 国产精品乱码一区二三区小蝌蚪| 国产裸舞福利在线视频合集| 国产成人av免费观看| 久久久久久久91| 狠狠躁夜夜躁久久躁别揉| 欧美日韩国产另类不卡| 国产成人精品久久一区二区小说| 久草中文在线视频| 黄色动漫网站| 欧美自拍电影| 久久精品天堂| 欧美日韩国产成人高清视频| 激情综合网五月激情| 91精品人妻一区二区三区果冻| 午夜精品福利一区二区三区av| 欧美精品18videos性欧| 欧美日韩中文字幕一区二区| 在线成人激情| 国产视频精品免费播放| 成人激情av| 亚洲国产精品国自产拍av| 亚洲aⅴ日韩av电影在线观看| 91精品国产毛片武则天| 日韩美女黄色片| 男女啪啪网站视频| 国产精品99久| 久久久久久久黄色片| 精品国产1区2区3区| 亚洲已满18点击进入在线看片| 超碰免费在线公开| 26uuu精品一区二区三区四区在线| 中文有码在线观看| 亚洲精品一区二区三区四区高清| 亚洲大型综合色站| 欧美丝袜丝交足nylons172| 国产麻豆剧传媒精品国产av| 欧美一区二区麻豆红桃视频| 99视频热这里只有精品免费| yjizz视频| 亚洲www免费| 欧美在线首页| 深夜福利日韩在线看| 蜜桃视频在线入口www| 国内精品不卡在线| 欧美日韩另类国产亚洲欧美一级| 日韩欧美一区二区三区在线| 制服.丝袜.亚洲.中文.综合懂| 免费看男男www网站入口在线| 尤物tv国产一区| 免费成人深夜夜行视频| 999久久久精品视频| 青青草在线观看视频| 色爱av综合网| 五月天丁香在线| 久久看人人爽人人| 欧美日韩美少妇| 亚洲视频资源在线| 中文字幕 日本| 久久96国产精品久久99软件| 不卡一二三区首页| 福利成人在线观看| 日韩欧美色综合| 成人网6969conwww| 性色av一区二区咪爱| 亚洲成人国产精品| 狠狠色丁香久久综合频道| 精品视频免费看| 欧美三级小视频| аⅴ资源天堂资源库在线| 久久av老司机精品网站导航| 国产高潮失禁喷水爽到抽搐| 一个人看的www久久| 亚洲免费福利视频| 最近中文字幕免费在线观看| 高清不卡日本v二区在线| 欧美国产欧美综合| 欧美激情在线观看视频免费| 祥仔av免费一区二区三区四区| 日韩黄色三级在线观看| 伊人色综合久久天天| 欧美videos另类齐全| 国产精品国产对白熟妇| 在线观看视频二区| 国产麻豆麻豆| aaaaa级少妇高潮大片免费看| 91麻豆精品一二三区在线| 日韩在线视频一区| 中文字幕av一区二区三区高| 亚洲香蕉av在线一区二区三区| 一级毛片视频在线| 亚洲国产精品成人综合色在线婷婷| 天天操天天干天天干| 成人高清免费观看mv| 欧美国产一二三区| 在线免费看黄色片| 国产寡妇树林野战在线播放| 久久国产福利国产秒拍| 国产精品国产三级国产普通话三级| 欧美成人精品在线播放| 青青成人在线| 亚洲久久成人| 伊人久久亚洲热| 日韩av网站在线免费观看| 中文字幕一区二区日韩精品绯色| 午夜精品视频在线观看一区二区| 99精品视频一区| a天堂视频在线| √新版天堂资源在线资源| 欧美日韩国产综合草草| 亚洲国产第一| 久久精品黄色片| 免费看特级毛片| 残酷重口调教一区二区| 精品少妇一区二区三区免费观| 欧美人与牲动交xxxx| 欧美 国产 综合| 欧美一级大片视频| 免费vip影院| 一区av在线播放| 国产va在线播放| 国产主播色在线| 成人欧美在线视频| 亚洲综合图片一区| 毛片视频免费观看| 老头老太做爰xxx视频| 亚洲高清久久久久久| 中文字幕在线官网| 久久久一区二区三区不卡| 国产在线视频91| 久久xxx视频| 日韩欧美一中文字暮专区| 久久精品国产色蜜蜜麻豆| 国产一区二区精品久久99| 无码熟妇人妻av| 红桃视频在线观看一区二区| a√天堂在线观看| 欧美成人三级在线| 日韩人妻无码精品久久久不卡| 日本国产在线| 91网站免费|