日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
創(chuàng)新互聯(lián)Python教程:python如何解決黏包問(wèn)題

1、了解發(fā)送數(shù)據(jù)的大小,設(shè)置接收的大小,這樣就可以正好接收所有的數(shù)據(jù)。黏包問(wèn)題是由于tcp的優(yōu)化算法將兩個(gè)不太大的數(shù)據(jù)包組合在一起發(fā)送的。

創(chuàng)新互聯(lián)公司-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性?xún)r(jià)比遵義網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式遵義網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋遵義地區(qū)。費(fèi)用合理售后完善,十余年實(shí)體公司更值得信賴(lài)。

這種情況通常發(fā)生在連續(xù)使用幾個(gè)send()時(shí)。

這是遠(yuǎn)程執(zhí)行cmd命令并返回結(jié)果的程序
server端代碼
import struct
import socket
sk = socket.socket()
sk.bind(('127.0.0.1',8080))
sk.listen()
conn,addr = sk.accept()
while True:
    cmd = input('>>>')
    conn.send(bytes(cmd,encoding='utf-8'))
    num = conn.recv(1024).decode('utf-8')   #接收client端計(jì)算好的數(shù)據(jù)長(zhǎng)度
    conn.send(bytes('ok',encoding='utf-8'))
    #發(fā)送一個(gè)確認(rèn)防止發(fā)送num的時(shí)候跟后面的send內(nèi)容合并了
    ret = conn.recv(num)
    print(ret.decode('gbk'))
conn.close()
sk.close()

2、使用struct模塊解決粘合現(xiàn)象。

server端代碼
 
#tcp黏包現(xiàn)象的解決 struct
import struct
import socket
sk = socket.socket()
sk.bind(('127.0.0.1',8080))
sk.listen()
conn,addr = sk.accept()
while True:
    cmd = input('>>>')
    conn.send(bytes(cmd,encoding='utf-8'))
    # num = conn.recv(1024).decode('utf-8')
    num = conn.recv(1024)   #接收數(shù)據(jù)
    num = struct.unpack('i',num)[0]#進(jìn)行解包,解包的結(jié)果是一個(gè)元組類(lèi)型取第一個(gè)數(shù)據(jù)
    # conn.send(bytes('ok',encoding='utf-8'))
    ret = conn.recv(num)
    print(ret.decode('gbk'))
conn.close()
sk.close()

以上就是python解決黏包問(wèn)題的方法,希望對(duì)大家有所幫助。更多Python學(xué)習(xí)指路:創(chuàng)新互聯(lián)Python教程

本文教程操作環(huán)境:windows7系統(tǒng)、Python 3.9.1,DELL G3電腦。


網(wǎng)頁(yè)標(biāo)題:創(chuàng)新互聯(lián)Python教程:python如何解決黏包問(wèn)題
轉(zhuǎn)載源于:http://www.dlmjj.cn/article/cdedjoc.html