CH579 UDP接收長度最大只能549個字節(jié)?發(fā)送550個字節(jié)就不能接收了

在UDP?Server?Demo下測試,配置如下信息

#define RECE_BUF_LEN? ? ? ? ? ? ? ? ? ? ? ? ? 1460? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/* 接收緩沖區(qū)的大小 */

/* CH57xNET庫TCP的MSS長度為536字節(jié),即一個TCP包里的數(shù)據(jù)部分最長為536字節(jié) */


#ifndef RX_BUF_SIZE

#define RX_BUF_SIZE? ? ? ? ? ? ? ? ? ? ? ? ? ?1524? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/* CH57x MAC接收每個緩沖區(qū)長度,為4的整數(shù)倍 */

#endif


#ifndef CH57xNET_TCP_MSS

#define CH57xNET_TCP_MSS? ? ? ? ? ? ? ? ? ? ? 1460? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/* tcp MSS的大小*/

#endif


測試結(jié)果接收長度最大只能是549個字節(jié),若發(fā)送550字節(jié)直接丟包

您好,CH579的以太網(wǎng),TCP最大一包就是536字節(jié),UDP模式下為549字節(jié)。如果您發(fā)送的數(shù)據(jù)大于這個一包的長度,需要您在代碼里面做出分包的處理,然后發(fā)送。



CH579的以太網(wǎng)一包最大長度主要局限于以太網(wǎng)協(xié)議棧占用的空間大小,如果CH579支持標準幀長,那么以太網(wǎng)協(xié)議棧的SRAM占用體積會增加到25-26KB左右。這樣用戶可用空間就會較少。所以,為了讓用戶有更多的空間分配使用,協(xié)議棧將579以太網(wǎng)幀長度進行了限制。



請教下,我看到ch57x以太網(wǎng)協(xié)議棧庫說明文檔里面,通過修改CH57xNET_TCP_MSS該宏定義的值,可以使ch579接收的報文長度改變,最大值可以到1460,我設(shè)置后沒有反應(yīng),接收的數(shù)據(jù)還是會分包,請問這個宏定義對CH579起作用嗎?如果有效,具體該怎么設(shè)置呢?


您好,CH579因為RAM的問題,內(nèi)部協(xié)議棧設(shè)置的TCP_MSS最大是536字節(jié),暫不支持1460。發(fā)送大包,您只需要代碼里面做好分包即可


請問TCP_MSS設(shè)置的值只能是536嗎?還是說可以稍微再大一些,我的應(yīng)用是使用tcp進行接收數(shù)據(jù),一次的數(shù)據(jù)包大小不會超過800字節(jié),現(xiàn)在的情況是接收數(shù)據(jù)會分包;


您好,TCP最多就是536無法修改。800字節(jié),您得自己再程序里面做一下分包。


好的,謝謝解答!


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频