新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于嵌入式系統的串口網絡服務器的設計

        基于嵌入式系統的串口網絡服務器的設計

        作者: 時間:2009-09-02 來源:網絡 收藏

        char buff[1024];int Len;int readByte = read(fd,buff,Len);
        3.2 網絡程序的
        Linux是通過提供套接字(socket)來進行網絡編程的。網絡程序通過socket和其它幾個函數的調用,會返回一個 通訊的文件描述符,我們可以將這個描述符看成普通的文件的描述符來操作,這就是linux的設備無關性的 好處。我們可以通過向描述符讀寫操作實現網絡之間的數據交流。以下介紹一下程序時常用的函數。
        (1) socket
        int socket(int domain, int type,int protocol)
        domain:說明我們網絡程序所在的主機采用的通訊協族(AF_UNIX和AF_INET等)。
        type:我們網絡程序所采用的通訊協議。
        protocol:由于我們指定了type,所以這個地方我們一般只要用0來代替就可以了。
        (2) bind
        int bind(int sockfd, struct sockaddr *my_addr, int addrlen)
        sockfd:是由socket調用返回的文件描述符。
        addrlen:是sockaddr結構的長度。
        my_addr:是一個指向sockaddr的指針。
        (3) listen
        int listen(int sockfd,int backlog)
        sockfd:是bind后的文件描述符。
        backlog:設置請求排隊的最大長度。當有多個客戶端程序和服務端相連時, 使用這個表示可以介紹的排隊長度。 listen函數將bind的文件描述符變為監聽套接字。返回的情況和bind一樣。
        (4) accept
        int accept(int sockfd, struct sockaddr *addr,int *addrlen)
        sockfd:是listen后的文件描述符。
        (5)connect
        int connect(int sockfd, struct sockaddr * serv_addr,int addrlen)。
        sockfd:socket返回的文件描述符。
        serv_addr:儲存了服務器端的連接信息。其中sin_add是服務端的地址。
        addrlen:serv_addr的長度。
        connect函數是客戶端用來同服務端連接的。
        總的來說網絡程序是由兩個部分組成的--客戶端和服務器端。它們的建立步驟一般是: 服務器端 socket-->bind-->listen-->accept。客戶端 socket-->connect。

        本文引用地址:http://www.104case.com/article/152360.htm

        4 結語

        服務器,采用三星公司的S3C4510B ARM7系列微處理器及uClinux操作,通過編程實現了數據到以太網口或以太網口到的數據轉換。經過幾個月的運行,證明穩定可靠。由于ARM系列微處理器的優異性能,本上完全可以再加上1/2/4/8個RS-485/422/232串口,輕松連接網絡并管理數量眾多且分散在不同位置的串行設備。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 郓城县| 平舆县| 洛川县| 桐城市| 穆棱市| 罗江县| 务川| 即墨市| 额敏县| 大宁县| 竹溪县| 吴川市| 平昌县| 永德县| 葵青区| 汉中市| 稻城县| 靖安县| 阿拉善右旗| 卓尼县| 蓝山县| 辰溪县| 辽阳市| 隆林| 安阳县| 右玉县| 乌鲁木齐市| 楚雄市| 崇义县| 合阳县| 阳泉市| 蒲江县| 河北区| 汕头市| 岚皋县| 庄浪县| 元江| 安新县| 桦南县| 泰顺县| 武陟县|