国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

python網(wǎng)絡(luò)編程

xuhong / 2080人閱讀

摘要:在任何類型的通信開始之前,網(wǎng)絡(luò)應(yīng)用程序必須創(chuàng)建套接字。基于文件的套接字,家族名又名基于網(wǎng)絡(luò)的套接字,家族名在和后續(xù)的版本中,支持的套接字有,,,。中的網(wǎng)絡(luò)編程在中主要是用模塊來實(shí)現(xiàn)基于套接字的網(wǎng)絡(luò)通信。

python學(xué)習(xí)記錄--網(wǎng)絡(luò)編程
1、套接字介紹

一臺(tái)機(jī)器上的不同進(jìn)程之間進(jìn)行通信可以利用隊(duì)列,管道等,但是不同機(jī)器之間的進(jìn)程進(jìn)行通信用隊(duì)列是不行的,解決這個(gè)問題就是網(wǎng)絡(luò)套接字。

套接字是計(jì)算機(jī)網(wǎng)絡(luò)數(shù)據(jù)結(jié)構(gòu),它體現(xiàn)了通信端點(diǎn)的概念。在任何類型的通信開始之前,網(wǎng)絡(luò)應(yīng)用程序必須創(chuàng)建套接字。可以將它比作電話插孔,沒有它無法進(jìn)行通信。

套接字最初是為同一主機(jī)上的應(yīng)用程序所創(chuàng)建,使得主機(jī)上一個(gè)程序(進(jìn)程)可以和主機(jī)上另外一個(gè)程序互相通信,也就是所謂的進(jìn)程間通信。有兩種類型的套接字:基于文件和基于網(wǎng)絡(luò)的。

基于文件的套接字,家族名:AF_UNIX(又名:AF_LOCAL)

基于網(wǎng)絡(luò)的套接字,家族名:AF_INET

在python2.5和后續(xù)的版本中,支持的套接字有:AF_UNIX,AF_INET,AF_TICP,AF_NETLINK。python中的網(wǎng)絡(luò)編程主要是AF_INET。

1.1、套接字地址:主機(jī)+端口
如果一個(gè)套接字像一個(gè)電話插孔——允許通信的一些基礎(chǔ)設(shè)施,那么主機(jī)名和端口號(hào)就像區(qū)號(hào)和電話號(hào)碼的組合。
有效的端口號(hào)范圍為 0~65535(小于 1024 的端口號(hào)預(yù)留給了系統(tǒng))。

1.2、面向連接和無連接的套接字
python中創(chuàng)建面向連接(TCP協(xié)議)的套接字必須使用SOCK_STREAM作為套接字類型,而創(chuàng)建無連接(UDP協(xié)議)的套接字必須使用SOCK_DGRAM作為套接字類型。

2、python中的網(wǎng)絡(luò)編程

在python中主要是用socket模塊來實(shí)現(xiàn)基于套接字的網(wǎng)絡(luò)通信。
2.1、socket()模塊函數(shù)
使用socket.socket()函數(shù)創(chuàng)建套接字,一般語法格式如下:

import socket
socket(socket_family,socket_type,protocol=0)

#其中,socket_family就是AF_UNIX或者AF_INET等,
#socker_type是SOCK_DGRAM或者SOCK_STREAM,
#protocol通常省略,默認(rèn)為0

創(chuàng)建一個(gè)TCP/IP套接字,可以用下面方式調(diào)用socket.socket()。

tcpSocket = socket.socket(socket.AF_INET,socket.SCOK_STREAM)

創(chuàng)建一個(gè)UDP/IP套接字,可以用下面方式調(diào)用socket.socket()。

udpSock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

如果用"from socket import *"導(dǎo)入模塊的話,創(chuàng)建套接字就可以節(jié)省很多代碼,例如創(chuàng)建一個(gè)UDP/IP套接字。

from socket import *
udpSock = socket(AF_INET,SOCK_DGRAM)

有了套接字對象,就可以使用套接字對象方法進(jìn)行交互。

2.2、套接字方法
常見的套接字方法:

方法名 描述
s.send() 發(fā)送TCP消息
s.sendto() 發(fā)送UDP消息
s.recv() 接收TCP消息
s.recvfrom() 接收UDP消息
s.close() 關(guān)閉套接字
s.bind() 將地址(主機(jī)名+端口號(hào)對)綁定到套接字上
3、UDP服務(wù)器

3.1 UDP協(xié)議
UDP協(xié)議--是一個(gè)簡單的面向數(shù)據(jù)報(bào)的運(yùn)輸層協(xié)議,它不提供可靠性,它把應(yīng)用程序傳給IP層的數(shù)據(jù)報(bào)發(fā)出去,但是并不能保證它們能到達(dá)目的地。由于UDP在傳輸數(shù)據(jù)報(bào)前不用在客戶和服務(wù)器之間建立一個(gè)連接,且沒有超時(shí)重發(fā)等機(jī)制,故而傳輸速度很快。

UDP是一種面向無連接的協(xié)議,每個(gè)數(shù)據(jù)報(bào)都是一個(gè)獨(dú)立的信息,包括完整的源地址或目的地址,它在網(wǎng)絡(luò)上以任何可能的路徑傳往目的地,因此能否到達(dá)目的地,到達(dá)目的地的時(shí)間以及內(nèi)容的正確性都是不能被保證的。

3.2 UDP特點(diǎn)
UDP是面向無連接的通訊協(xié)議,UDP數(shù)據(jù)包括目的端口號(hào)和源端口號(hào)信息,由于通訊不需要連接,所以可以實(shí)現(xiàn)廣播發(fā)送。 UDP傳輸數(shù)據(jù)時(shí)有大小限制,每個(gè)被傳輸?shù)臄?shù)據(jù)報(bào)必須限定在64KB之內(nèi)。 UDP是一個(gè)不可靠的協(xié)議,發(fā)送方所發(fā)送的數(shù)據(jù)報(bào)并不一定以相同的次序到達(dá)接收方。

【適用情況】

UDP是面向消息的協(xié)議,通信時(shí)不需要建立連接,數(shù)據(jù)的傳輸自然是不可靠的,UDP一般用于多點(diǎn)通信和實(shí)時(shí)的數(shù)據(jù)業(yè)務(wù),比如

語音廣播

視頻

QQ

TFTP(簡單文件傳送)

SNMP(簡單網(wǎng)絡(luò)管理協(xié)議)

RIP(路由信息協(xié)議,如報(bào)告股票市場,航空信息)

DNS(域名解釋)

注重速度流暢
UDP操作簡單,而且僅需要較少的監(jiān)護(hù),因此通常用于局域網(wǎng)高可靠性的分散系統(tǒng)中client/server應(yīng)用程序。例如視頻會(huì)議系統(tǒng),并不要求音頻視頻數(shù)據(jù)絕對的正確,只要保證連貫性就可以了,這種情況下顯然使用UDP會(huì)更合理一些。

3.3 創(chuàng)建UDP服務(wù)器
創(chuàng)建UDP服務(wù)器的大體框架,由于UDP是面向無連接的,所以除了等待傳入的連接之外,幾乎不需要做其他工作。

from socket import *
#創(chuàng)建服務(wù)器套接字
udpSocket = socket.socket(AF_INET,SOCK.DGRAM) 

#綁定服務(wù)器套接字
udpSocket.bind(port) 

#服務(wù)器無限循環(huán),等待連接
while True: 
    #接受客戶端傳入/發(fā)送數(shù)據(jù)
    cs = udpSocket.recvfrom()/udpSocket.sendto(xxx)
    #關(guān)閉套接字
    udpSocket.close()

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/42960.html

相關(guān)文章

  • 學(xué)習(xí)Python:做數(shù)據(jù)科學(xué)還是網(wǎng)站開發(fā)?

    摘要:屬于前一種,而且日益被用于數(shù)學(xué)計(jì)算機(jī)器學(xué)習(xí)和多種數(shù)據(jù)科學(xué)應(yīng)用。近來,由于擁有多個(gè)針對機(jī)器學(xué)習(xí)自然語言處理數(shù)據(jù)視覺化數(shù)據(jù)探索數(shù)據(jù)分析和數(shù)據(jù)挖掘的插件,豐富的數(shù)據(jù)科學(xué)生態(tài)體系得到了較大的發(fā)展,甚至有將數(shù)據(jù)科學(xué)社區(qū)化的趨勢。 譯者注:本文的英文原文地址是:Python for Data Science vs Python for Web Development,發(fā)布時(shí)間是10月29日。譯者一...

    neu 評論0 收藏0
  • 編程書單:十本Python編程語言的入門書籍

    摘要:本文與大家分享一些編程語言的入門書籍,其中不乏經(jīng)典。全書貫穿的主體是如何思考設(shè)計(jì)開發(fā)的方法,而具體的編程語言,只是提供一個(gè)具體場景方便介紹的媒介。入門入門容易理解而且讀起來幽默風(fēng)趣,對于編程初學(xué)者和語言新手而言是理想的書籍。 本文與大家分享一些Python編程語言的入門書籍,其中不乏經(jīng)典。我在這里分享的,大部分是這些書的英文版,如果有中文版的我也加上了。有關(guān)書籍的介紹,大部分截取自是官...

    desdik 評論0 收藏0
  • Python貓薦書系列之七:Python入門書籍有哪些?

    摘要:正好,最近又有幾位不同身份的初學(xué)者來咨詢,要我推薦幾本入門書籍,而我們薦書系列已經(jīng)停更了兩個(gè)多月,所以,本期薦書就來推薦一些入門書籍吧。為了準(zhǔn)備這期薦書,我專門搜集了本入門書籍,現(xiàn)在全部加入到了一份豆瓣豆列里,方便大家查看。 showImg(https://segmentfault.com/img/remote/1460000019299066?w=4790&h=3193); 本文原創(chuàng)...

    Joyven 評論0 收藏0
  • 零基礎(chǔ)如何學(xué)爬蟲技術(shù)

    摘要:楚江數(shù)據(jù)是專業(yè)的互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)服務(wù),現(xiàn)整理出零基礎(chǔ)如何學(xué)爬蟲技術(shù)以供學(xué)習(xí),。本文來源知乎作者路人甲鏈接楚江數(shù)據(jù)提供網(wǎng)站數(shù)據(jù)采集和爬蟲軟件定制開發(fā)服務(wù),服務(wù)范圍涵蓋社交網(wǎng)絡(luò)電子商務(wù)分類信息學(xué)術(shù)研究等。 楚江數(shù)據(jù)是專業(yè)的互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)服務(wù),現(xiàn)整理出零基礎(chǔ)如何學(xué)爬蟲技術(shù)以供學(xué)習(xí),http://www.chujiangdata.com。 第一:Python爬蟲學(xué)習(xí)系列教程(來源于某博主:htt...

    KunMinX 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<