欧美1区2区3区激情无套,两个女人互添下身视频在线观看,久久av无码精品人妻系列,久久精品噜噜噜成人,末发育娇小性色xxxx

TCP粘包問題

TCP粘包問題又叫做數(shù)據(jù)的無邊界性,在上一節(jié)中我們介紹了在創(chuàng)建套接字的時(shí)候,是會(huì)同時(shí)創(chuàng)建socket輸入、輸出緩沖區(qū)的。也就是說,write函數(shù)只要將要寫的數(shù)據(jù)全部寫入了輸出緩沖區(qū),函數(shù)就會(huì)返回,至于將數(shù)據(jù)發(fā)出去就是TCP協(xié)議的事了,而如果客戶端在讀取的時(shí)候,也是從輸入緩沖區(qū)中讀,并且是盡可能多的讀取,那么如果服務(wù)器分幾次發(fā)給客戶端的數(shù)據(jù),客戶端可能就一次性全給讀過來了,比如服務(wù)器分三次分別發(fā)了1,2,3三個(gè)數(shù)據(jù),但是客戶端一次性從緩沖區(qū)讀,就讀到了123。這顯然是不正確的。

一些通用的做法:
1.發(fā)送固定長度的數(shù)據(jù),不夠的用0填充,這樣和客戶端約定好,每次我的包長度就是固定那么長,那么客戶端解析數(shù)據(jù)就有了保證。但是這樣做第一效率不高,第二長度不好控制,萬一需要發(fā)送較長的包則會(huì)出現(xiàn)問題。

2.發(fā)送數(shù)據(jù)的頭部加一個(gè)長度信息。客戶端拿到數(shù)據(jù)的時(shí)候就能知道這個(gè)包的長度是多少。

3.在數(shù)據(jù)包的尾部加上一個(gè)特殊字符,標(biāo)記包的結(jié)束。

筆者在實(shí)習(xí)期間對(duì)基于TCP的網(wǎng)絡(luò)文件系統(tǒng)協(xié)議NFS進(jìn)行了解析,一般協(xié)議中是有部分長度信息的。即使發(fā)生了分片(即單個(gè)包的長度大于分片的最大長度),只需要根據(jù)長度信息,就可以等待包到來,直到長度滿足,就能將整個(gè)包重組起來了。

全部評(píng)論

相關(guān)推薦

想熬夜的小飛象在秋招:被騰訊掛了后爸媽以為我失聯(lián)了
點(diǎn)贊 評(píng)論 收藏
分享
評(píng)論
點(diǎn)贊
收藏
分享

創(chuàng)作者周榜

更多
??途W(wǎng)
??推髽I(yè)服務(wù)