日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:Python之簡單的網(wǎng)絡(luò)編程

OSI 模型介紹

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計、網(wǎng)站制作、外貿(mào)營銷網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的城廂網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

應(yīng)用層 -- 對接受的數(shù)據(jù)進行解釋、加密與解密、壓縮與解壓縮。

會話層 -- 通過傳輸層(端口號: 傳輸端口和接受端口) 建立數(shù)據(jù)傳輸?shù)耐贰?/p>

傳輸層 -- 定義了一些傳輸數(shù)據(jù)的協(xié)議和端口號(www端口80等),如:TCP。

網(wǎng)絡(luò)層 -- 主要將從下層接收到的數(shù)據(jù)進行IP地址(例:192.168.0.1)的封裝與解封裝。

數(shù)據(jù)鏈路層 -- 主要將從物理層接收的數(shù)據(jù)進行MAC地址的封裝與解封裝。

物理層 -- 主要定義物理設(shè)備標(biāo)志,如往昔的接口類型,跟蹤傳輸介質(zhì)的傳輸速率等。

TCP/IP協(xié)議

參考模型把所有的TCP/IP系列協(xié)議歸類到四個抽象層中。

應(yīng)用層 -- TFTP,HTTP,SNMP,F(xiàn)TP,SMTP,DNS,Telnet 等等

傳輸層 -- TCP,UDP

網(wǎng)絡(luò)層 -- IP,ICMP,OSPF,EIGRP,IGMP

數(shù)據(jù)鏈路層 -- SLIP,CSLIP,PPP,MTU

Socket 通信流程

相關(guān)方法及參數(shù)介紹

family=AF_INET:  服務(wù)器之間的通信
family=AF_UNIX: Unix 不同進程間通信
sk.bind(address)
#s.bind(address) 將套接字綁定到地址。address地址的格式取決于地址族。在AF_INET下,以元組(host,port)的形式表示地址。
sk.listen(backlog)
#開始監(jiān)聽傳入連接。backlog指定在拒絕連接之前,可以掛起的連接數(shù)量。
#backlog等于5,表示內(nèi)核已經(jīng)接到了連接請求,但服務(wù)器還沒有調(diào)用accept進行處理的連接個數(shù)為5
#這個值不能大,因為要在內(nèi)核中維護連接隊列
sk.setblocking(bool)
#是否阻塞(默認(rèn)True),如果設(shè)置False,那么accept和recv時一旦無數(shù)據(jù),則報錯。
sk.accept()
#接受連接并返回(conn,address),其中conn是新的套接字對象,可以用來接收和發(fā)送數(shù)據(jù)。address是連接客戶端的地址。
#接收TCP 客戶的連接(阻塞式)等待連接的到來
sk.connect(address)
#連接到address處的套接字。一般,address的格式為元組(hostname,port),如果連接出錯,返回socket.error錯誤。
sk.connect_ex(address)
#同上,只不過會有返回值,連接成功時返回 0 ,連接失敗時候返回編碼,例如:10061
sk.close()
#關(guān)閉套接字
sk.recv(bufsize[,flag])
#接受套接字的數(shù)據(jù)。數(shù)據(jù)以字符串形式返回,bufsize指定最多可以接收的數(shù)量。flag提供有關(guān)消息的其他信息,通??梢院雎浴?sk.send(string[,flag])
#將string中的數(shù)據(jù)發(fā)送到連接的套接字。返回值是要發(fā)送的字節(jié)數(shù)量,該數(shù)量可能小于string的字節(jié)大小。即:可能未將指定內(nèi)容全部發(fā)送。
sk.sendall(string[,flag])
#將string中的數(shù)據(jù)發(fā)送到連接的套接字,但在返回之前會嘗試發(fā)送所有數(shù)據(jù)。成功返回None,失敗則拋出異常。
#內(nèi)部通過遞歸調(diào)用send,將所有內(nèi)容發(fā)送出去。

簡單的通信(client 端發(fā)送消息,server 端接收,一發(fā)一收)

相關(guān)推薦:《python視頻教程》

# server 端
import socket
sk = socket.socket()
address=('127.0.0.1', 8000)
sk.bind(address)
sk.listen(3)
print('waiting....')
conn, addr = sk.accept()
while 1:
    data = conn.recv(1024)            # server 端通過 conn 接收和發(fā)送數(shù)據(jù)
    print('.....',str(data, 'utf8'))
    if not data: break
    inp = input('>>>')
    conn.send(bytes(inp,'utf8'))
sk.close()
# client 端
import socket
sk = socket.socket()
address = ('127.0.0.1', 8000)
sk.connect(address)
while True:
    inp = input('>>>')
    if inp == 'exit':
        break
    sk.send(bytes(inp, 'utf8'))        # client 端通過 sk 接收和發(fā)送數(shù)據(jù)
    data = sk.recv(1024)
    print(str(data,'utf8'))
sk.close()

簡單的通信(server 持續(xù)監(jiān)聽)

# server 端
import socket
sk = socket.socket()
address=('127.0.0.1', 8000)
sk.bind(address)
sk.listen(3)
print('waiting....')
while 1:
    conn, addr = sk.accept()
    print(addr)
    while 1:
        try:
            data = conn.recv(1024)
        except Exception:
            break
        print('.....',str(data, 'utf8'))
        inp = input('>>>')
        conn.send(bytes(inp,'utf8'))
sk.close()
# client 端
import socket
sk = socket.socket()
address = ('127.0.0.1', 8000)
sk.connect(address)
while True:
    inp = input('>>>')
    if inp == 'exit':
        break
    sk.send(bytes(inp, 'utf8'))
    data = sk.recv(1024)
    print(str(data,'utf8'))
sk.close()

使用python執(zhí)行命令

import subprocess
a = subprocess.Popen('dir', shell=True, stdout=subprocess.PIPE)
print(str(a.stdout.read(),'gbk'))   # windows 機器默認(rèn)編碼為 gbk 所以輸出需要解碼為 gbk

bytes編碼 與 str編碼相互轉(zhuǎn)換

str   : unicode
bytes : 十六進制
s = 'hello,陳先生'
print(type(s))          # 
 
b = bytes(s, 'utf8')    # str 編碼成 bytes
print(type(b))          # 
print(b)                # b'hello,\xe9\x99\x88\xe5\x85\x88\xe7\x94\x9f
b2 = s.encode('utf8')   # str 編碼成 bytes
print(type(b2))         # 
print(b)                # b'hello,\xe9\x99\x88\xe5\x85\x88\xe7\x94\x9f
s1 = str(b2, 'utf8')    # bytes 解碼成 str 
print(s1)               # hello,陳先生
s2 = b2.decode('utf8')  # bytes 解碼成 str 
print(s2)               # hello,陳先生

網(wǎng)頁題目:創(chuàng)新互聯(lián)Python教程:Python之簡單的網(wǎng)絡(luò)編程
標(biāo)題網(wǎng)址:http://m.5511xx.com/article/cddosgi.html