CH32V307 以太網(wǎng)socket ID對應不上

WCHNET_SocketCreat(&SockId, &TmpSocketInf)
創(chuàng)建Socket的時候,得到的SocketId=0


if(IntStatus & GINT_STAT_SOCKET)

{

????for(SocketNum = 0; SocketNum < WCHNET_MAX_SOCKET_NUM; SocketNum++)

? ?{

?????????SocketInt = WCHNET_GetSocketInt(SocketNum);

????}

}.....

讀取Socket的中斷標志時,讀到的是SocketNum=1 發(fā)生中斷并且讀取到接收的數(shù)據(jù)。如果是創(chuàng)建的時候創(chuàng)建2個,同樣也是讀創(chuàng)建的時候為1 讀到數(shù)據(jù)的socke為2.

理論上我創(chuàng)建的時候是Socket 0那么我就只要檢查Socket 0的狀態(tài),而官網(wǎng)例子里面是檢查所有Socket狀態(tài) 那個有變化就處理哪個,如果是2個Socket 這種做法是不行的。是不是庫初始化的時候Socket從0開始而獲取中斷的socket是從1開始的。。。。。


沒有搞明白為啥創(chuàng)建的TCP Server Id是0 ,接收到的數(shù)據(jù)卻在1里面
image.png


只有TCP Server 是這種情況


您好,TCP Server?Listening會占用一個socket,該值為0;當有TCP Client連接進來之后協(xié)議棧會重新分配一個socket保存該連接的信息,值為1,類似的,多連接分配的socket值會依次遞增。


好的 已經(jīng)弄明白了


#define RECE_BUF_LEN? ? ? ? ? ? ? ? ? (WCHNET_TCP_MSS*2)? ?/* socket receive buffer size */
請問接收緩沖區(qū)給2*是啥意思?目的是為啥?以太網(wǎng)包最大1460的樣子,這樣是為了接收更大的分包發(fā)送的數(shù)據(jù)包?因為內(nèi)存緊張肯定要調(diào)小,所以需要知道為啥。


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

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