|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
lwip問題請教,謝謝 |
| 作者:apple_yyh 欄目:嵌入式系統(tǒng) |
在測試程序上有問題 問題一: void udpecho_thread(void *arg) { struct netCONN *CONN; struct netbuf *buf; struct ip_addr addr; CHAR *data; int i; u16_t PORT; CHAR text[] = "This is a TEST udp packet"; CONN = netCONN_new(NETCONN_UDP); addr.addr = htonl(0xac144653); netCONN_CONNect(CONN, &addr, 4660); buf = netbuf_new(); netbuf_ref(buf, text, sizeof(text));這時(shí)候buf是指向text地址,但是為什么發(fā)送時(shí)會(huì)被分成兩個(gè)包發(fā)送呢,而且發(fā)送的第一個(gè)包 netCONN_send(CONN,buf); netCONN_delete(CONN); netbuf_delete(buf); } 問題出在這里 netbuf_ref(buf, text, sizeof(text)); 這時(shí)候buf是指向text地址,但是為什么發(fā)送時(shí)會(huì)被分成兩個(gè)包發(fā)送呢,而且發(fā)送的第一個(gè)包的數(shù)據(jù)全是0,長度是text的長度。 第二個(gè)包不準(zhǔn)確,將text的內(nèi)容當(dāng)做以太網(wǎng)頭部 我理解的意思是這個(gè)只能將要發(fā)送的內(nèi)容拷貝到buf分配的地址中去,如果將buf指針指向外部存儲(chǔ)空間,只發(fā)送發(fā)生錯(cuò)誤,請教問題在哪,謝 謝。 問題二: void udpecho_thread(void *arg) { struct netCONN *CONN; struct netbuf *buf; struct ip_addr addr,addrlocal; CHAR *data; int i; u16_t PORT; CHAR text[] = "This is a TEST udp packet"; CONN = netCONN_new(NETCONN_UDP); addrlocal.addr = htonl(0xac144653); netCONN_bind(CONN,NULL,4660); while((buf = netCONN_recv(CONN))!=NULL) { addr.addr = buf->fromaddr; PORT = buf->fromPORT; netCONN_CONNect(CONN,&addr,PORT); netCONN_send(CONN, buf); } /* deallocate CONNection and netbuf */ netCONN_delete(CONN); netbuf_delete(buf); } 問題是為什么發(fā)送過來的UDP包送不到我應(yīng)用層呢???請教問題出在哪里? |
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |