創(chuàng)建網(wǎng)絡(luò)端口服務(wù)會返回錯誤碼11

把DHCP的例程合并入到了udpclient的例程中。


測試程序的時候發(fā)現(xiàn)芯片能夠拿到ip,在dhcp回調(diào)函數(shù)中調(diào)用WCHNET_CreateUdpSocket失敗,


WCHNET_SocketCreat返回錯誤碼11, 是說內(nèi)存超出了,


這個要怎么調(diào)呢?


u8 SocketId;

u8 SocketRecvBuf[WCHNET_MAX_SOCKET_NUM][RECE_BUF_LEN];? ? //socket receive buffer

u8 MyBuf[RECE_BUF_LEN];


void WCHNET_CreateUdpSocket(void)

{

? ? u8 i;

? ? SOCK_INF TmpSocketInf;


? ? memset((void *) &TmpSocketInf, 0, sizeof(SOCK_INF));

? ? memcpy((void *) TmpSocketInf.IPAddr, DESIP, 4);

? ? TmpSocketInf.DesPort = desport;

? ? TmpSocketInf.SourPort = srcport++;

? ? TmpSocketInf.ProtoType = PROTO_TYPE_UDP;

? ? TmpSocketInf.RecvStartPoint = (u32) SocketRecvBuf[SocketId];

? ? TmpSocketInf.RecvBufLen = RECE_BUF_LEN;

? ? i = WCHNET_SocketCreat(&SocketId, &TmpSocketInf);

? ? printf("WCHNET_SocketCreat %d srcport %d\r\n", SocketId, srcport);

? ? mStopIfError(i);

}


打印的信息是?WCHNET_SocketCreat 0?srcport? 1001

看不出有什么問題??? 為什么會報內(nèi)存的問題呢?


您好,根據(jù)你描述的報錯信息,可在net_config.h文件中將WCHNET_NUM_UDP的數(shù)值改為 2 試一下,如下圖,DHCP也是基于UDP的。

image.png


是正解,但是我的辦法是第一次dhcp之后就直接關(guān)閉dhcp了,之后就一直用第一次申請的ip直接使用。改成2,掉線之后重新創(chuàng)建socket 那內(nèi)存還是溢出


您好,按照您的描述,如果掉線是指拔插網(wǎng)線的話,那UDP是不用重新創(chuàng)建socket的,可以通過郵箱詳細(xì)溝通一下:kx@wch.cn


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

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