<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于嵌入式系統(tǒng)的串口網(wǎng)絡(luò)服務(wù)器的設(shè)計(jì)

          基于嵌入式系統(tǒng)的串口網(wǎng)絡(luò)服務(wù)器的設(shè)計(jì)

          作者: 時(shí)間:2009-09-02 來源:網(wǎng)絡(luò) 收藏

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

          本文引用地址:http://www.ex-cimer.com/article/152360.htm

          4 結(jié)語

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

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

          上一頁 1 2 3 下一頁

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();