在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > ARM7單片機+RTL8019嵌入式TCP_IP協(xié)議棧使用分析

            ARM7單片機+RTL8019嵌入式TCP_IP協(xié)議棧使用分析

            作者: 時間:2012-12-05 來源:網(wǎng)絡 收藏
            一、總則
            本文件是嵌入式TCP/IP的說明文件,嵌入式TCP/IP應用開發(fā)人員可通過閱讀本文件,掌握在嵌入式TCP/IP的基礎上開發(fā)服務器和客戶端應用程序,如FTP服務器,WEB服務器,串口服務器等等。
            二、參考文件
            1)TCP_IP詳解卷1,2,3
            2)RFC 959 (rfc959) - File Transfer Protocol.htm
            3)rfc1945- Hypertext Transfer Protocol -- HTTP/1.0
            三、技術(shù)說明
            1)用戶應用則需要編寫以太網(wǎng)的數(shù)據(jù)報收發(fā)驅(qū)動,就可以使用協(xié)議棧提供的標準SOCKET API,完成服務器和客戶端應用程序的開發(fā)。
            2)協(xié)議棧運行于非操作系統(tǒng)的環(huán)境下,因此它的運行速度與一般采用多任務操作系統(tǒng)的TCP/IP協(xié)議,速度相對說來要快。
            3)協(xié)議棧完成的功能包括ARP,IP,ICMP(ping),TCP,UDP,暫不支持IGMP,RARP。
            4)協(xié)議棧采用C代碼編寫,可方便的移植于各種單片機平臺。
            5)協(xié)議棧在+硬件環(huán)境下測試,并建立了FTP服務器和WEB服務器,性能穩(wěn)定。
            6)協(xié)議棧建立的FTP服務器和WEB服務器與Internet Explorer瀏覽器和ftp.exe相互兼容。
            7)協(xié)議棧每一個SOCKET上建了數(shù)據(jù)緩沖隊列(數(shù)據(jù)結(jié)構(gòu)),用于接收SOCKET的并發(fā)數(shù)據(jù),實現(xiàn)多SOCKET的并發(fā)數(shù)據(jù)報處理,可同時運行FTP服務器和WEB服務器。
            8)協(xié)議棧實現(xiàn)了ACK的延時答應(200ms),支持TCP多包發(fā)送和接收,但未支持TCP數(shù)據(jù)報的失序處理,因此適合局域網(wǎng)內(nèi)使用。

            四、SOCKET API函數(shù)
            1)函數(shù)SOCKET * socket(u16 af,u16 type,u16 protocol)
            本函數(shù)功能是從SOCKET pool中分配一個SOCKET插口,供應用程序使用,其參數(shù)說明如下:
            1.參數(shù)af,type—無意義,保留為擴充功能使用。
            2.參數(shù)protocol—為分配SOCKET的類型,包括TCP_PROTOCOL和UDP_PROTOCOL兩個類型。
            3.返回值:函數(shù)執(zhí)行成功,返回SOCKET*指針指向一個SOCKET,失敗返回NULL
            2)函數(shù)u16 bind(SOCKET * sock,struct sockaddr * address,u8 len)
            本函數(shù)功能是將IP地址和端口綁定到一個SOCKET 指針* sock指向的SOCKET。
            1.SOCKET * sock—指向被綁定的SOCKET。
            2.struct sockaddr * address—指向IP地址和端口。
            3.len—無意義,保留為擴充功能使用。
            4.返回值:SUCC。
            3)函數(shù)u16 listen(SOCKET * sock, u16 QTY)
            本函數(shù)功能是啟動被綁定了地址和端口的 SOCKET * sock,觸發(fā)其為監(jiān)聽狀態(tài)。本函數(shù)由服務器端應用程序使用。
            1.SOCKET * sock—指向被bind的SOCKET。
            2.返回值:SUCC。
            4)函數(shù)u16 connect(SOCKET * sock, struct sockaddr * sevaddr,u8 len)
            本函數(shù)功能是用于建立一個連接,到服務器,服務器的地址和端口由參數(shù)sevaddr指定。該函數(shù)由客戶端使用。
            1.SOCKET * sock—指向被連接的本地SOCKET。
            2.struct sockaddr * sevaddr,-- 服務器的地址和端口.
            3.u8 len—無意義,保留為擴充功能使用。
            4.返回值:是SOCKET句柄。
            5)函數(shù)u16 accept(SOCKET * sock,struct sockaddr * address,u16 *iii)
            本函數(shù)返回一個已連接的SOCKET句柄,供函數(shù)recv(),send()收發(fā)數(shù)據(jù)使用。
            1.SOCKET * sock—指向一個被綁定地址和端口的SOCKET
            2.struct sockaddr * address,u16 *iii--無意義,保留為擴充功能使用。
            3.返回值:是SOCKET句柄。
            6)函數(shù)u16 recv(u16 handle,u8 * rec_buff,u16 len,u16 i)
            指定句柄讀取數(shù)據(jù),由TCP使用
            1.u16 handle--指定句柄
            2.u8 * rec_buff—緩沖區(qū)首地址
            3.u16 len—讀取數(shù)據(jù)的長度
            4.u16 i--無意義,保留為擴充功能使用。
            5.返回值:為已讀取的字節(jié)數(shù)
            7)函數(shù)u8 send(u16 handle,u8 *rec_buff,u16 len,u16 i)
            向指定句柄發(fā)送數(shù)據(jù),由TCP使用
            1.u16 handle--指定句柄
            2.u8 * rec_buff—緩沖區(qū)首地址
            3.u16 len—發(fā)送數(shù)據(jù)的長度
            4.u16 i--無意義,保留為擴充功能使用。
            5.返回值:是SUCC
            8)void close(u16 handle)
            發(fā)送FIN主動關(guān)閉一個SOCKET連接,handle為被關(guān)閉連接的句柄。

            9)函數(shù)u16 recvfrom(SOCKET *sock,u8 *rec_buff,u16 len,u8 i,struct sockaddr * address,u16 *addr_len)
            從指定SOCKET *sock插口讀取數(shù)據(jù),由UDP使用,函數(shù)的參數(shù)具體情況如下:
            1.SOCKET *sock --指向插口的指針
            2.u8 * rec_buff—緩沖區(qū)首地址
            3.u16 len—讀取數(shù)據(jù)的長度
            4.u16 i--無意義,保留為擴充功能使用。
            5.返回值:為已讀取的字節(jié)數(shù)

            10)函數(shù)u16 sendto(SOCKET *sock,u8 *rec_buff,u16 len,u8 i,struct sockaddr * address,u16 *addr_len)
            向從指定SOCKET *sock插口發(fā)送數(shù)據(jù),由UDP使用,函數(shù)的參數(shù)具體情況如下:
            1.SOCKET *sock,--指向插口的指針
            2.u8 * rec_buff—緩沖區(qū)首地址
            3.u16 len—發(fā)送數(shù)據(jù)的長度
            4.u16 i--無意義,保留為擴充功能使用
            5.返回值:為SUCC

            五、SOCKET API應用舉例
            1)簡單WEB服務器--通過函數(shù)TCP_TEST()完成設置本地TCP服備器的IP地址,其過程如下:
            1.調(diào)用SOCKET API函數(shù)socket(0,0,TCP_PROTOCOL)分配一個SOCKET,
            2.調(diào)用SOCKET API函數(shù)將TCP server的IP地址與SOCKET綁定,調(diào)用函數(shù)bind()起動監(jiān)聽。
            3.函數(shù)TCP_TEST()通過函數(shù)accept()接收網(wǎng)頁獲取請求,調(diào)用函數(shù)recv()接收HTTP命令,根據(jù)命令調(diào)用函數(shù)send()發(fā)送http網(wǎng)頁。

            單片機相關(guān)文章:單片機教程


            單片機相關(guān)文章:單片機視頻教程


            單片機相關(guān)文章:單片機工作原理


            tcp/ip相關(guān)文章:tcp/ip是什么



            上一頁 1 2 下一頁

            關(guān)鍵詞: ARM7 RTL8019 協(xié)議棧

            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉