新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM7單片機+RTL8019嵌入式TCP_IP協議棧使用分析

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

        作者: 時間:2012-12-05 來源:網絡 收藏

        WEB服務器程序清單
        /*****************************************************
        * 名稱:TCP_TEST()
        * 功能:設置TCP模塊
        * 入口:無
        * 出口: 無
        *********************************************************/

        void TCP_SETUP(void)
        {
        /*設置本地TCP服備器的IP地址*/
        TCP_serveraddr.sin_family = 0;
        TCP_serveraddr.sin_addr[0] = MY_IP_ADD[0];
        TCP_serveraddr.sin_addr[1] = MY_IP_ADD[1];
        TCP_serveraddr.sin_addr[2] = MY_IP_ADD[2];
        TCP_serveraddr.sin_addr[3] = MY_IP_ADD[3];
        TCP_serveraddr.sin_port = 80;
        /*將TCP server的IP地址與SOCKET綁定*/
        t = socket(0,0,TCP_PROTOCOL);
        iii=bind(t,TCP_serveraddr,sizeof(TCP_serveraddr));
        iii=listen(t,4);

        }
        /********************************************************
        * 名稱:TCP_TEST()
        * 功能:TCP打開網頁測試
        * 入口:無
        * 出口: 無
        ********************/
        void TCP_TEST(void)
        {
        temp = accept(t,TCP_clientaddr,iii);/*accept網頁獲取請求*/

        if(temp != 0xffff)
        { templen = recv(temp,TCP_rec_buff,1024,0);
        if(TCP_rec_buff[5] == ' ')
        { send(temp,httpweb,169,0); /*發送http網頁*/
        send(temp,web,395,0);

        }
        else if(TCP_rec_buff[5] == '1')
        {
        send(temp,httpgif,169,0); /*發送GIF,BMP圖片背景*/
        send(temp,bmp,442,0);
        }
        close(temp);
        }
        }

        2)簡單UDP服務器—通過函數UDP_TEST()完成設置本地UDP服備器的IP地址和遠端口服務器的IP地址, 其過程如下:
        1.調用SOCKET API函數socket(0,0,TCP_PROTOCOL)分配一個SOCKET
        2.調用SOCKET API函數bind()將UDP server的IP地址與SOCKET綁定,將調用SOCKET API函數enable_a_port_listen(1025)起動監聽。
        3.函數UDP_TEST()通過函數recfrom()接收UDP數據報,接收到的UDP數據報調用SOCKET API函數sendto()回傳遠程服務器。
        UDP服務器程序清單

        * 名稱:UDP_SETUP()
        * 功能:設置UDP模塊
        * 入口:無
        * 出口: 無
        ***********************************************************/
        void UDP_SETUP(void)
        {
        serveraddr.sin_family = 0; /*設置遠端服務器的IP地址*/
        serveraddr.sin_addr[0] = 192;
        serveraddr.sin_addr[1] = 168;
        serveraddr.sin_addr[2] = 0;
        serveraddr.sin_addr[3] = 1;
        serveraddr.sin_port = 1026;
        s = socket(0,0,UDP_PROTOCOL);
        clientaddr.sin_family = 0; /*設置本地UDP客戶端的IP地址*/
        clientaddr.sin_addr[0] = MY_IP_ADD[0];
        clientaddr.sin_addr[1] = MY_IP_ADD[1];
        clientaddr.sin_addr[2] = MY_IP_ADD[2];
        clientaddr.sin_addr[3] = MY_IP_ADD[3];
        clientaddr.sin_port = 1025;
        /*將本地IP地址與SOCKET綁定*/
        iii=bind(s,clientaddr,sizeof(clientaddr));
        enable_a_port_listen(1025);
        }

        /************************************************************
        * 名稱:UDP_TEST()
        * 功能:UCP數據報收發測試
        * 入口:無
        * 出口: 無
        *************************************************************/
        void UDP_TEST(void)
        {
        /*接收UDP數據報*/
        len = recvfrom(s,rec_buff,400,0,serveraddr,iii);
        if(len > 0)
        { /*將接收到的UDP數據報發送回服務器端*/
        sendto(s,rec_buff,len,0,serveraddr,iii);
        }
        }

        單片機相關文章:單片機教程


        單片機相關文章:單片機視頻教程


        單片機相關文章:單片機工作原理


        tcp/ip相關文章:tcp/ip是什么



        上一頁 1 2 下一頁

        關鍵詞: ARM7 RTL8019 協議棧

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 宁陕县| 阜平县| 沈阳市| 杭锦后旗| 临猗县| 江口县| 东阳市| 中山市| 克山县| 金溪县| 新津县| 阿勒泰市| 彭泽县| 济阳县| 紫金县| 恩平市| 垫江县| 北海市| 宁津县| 资阳市| 昆明市| 富裕县| 台州市| 嫩江县| 华安县| 建德市| 泰宁县| 普洱| 山丹县| 淳安县| 桑植县| 赞皇县| 白玉县| 徐州市| 万盛区| 晋宁县| 雷波县| 孝昌县| 边坝县| 福贡县| 江口县|