新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于嵌入式系統(tǒng)的串口網(wǎng)絡服務器的設計

基于嵌入式系統(tǒng)的串口網(wǎng)絡服務器的設計

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

char buff[1024];int Len;int readByte = read(fd,buff,Len);
3.2 網(wǎng)絡程序的
Linux是通過提供套接字(socket)來進行網(wǎng)絡編程的。網(wǎng)絡程序通過socket和其它幾個函數(shù)的調用,會返回一個 通訊的文件描述符,我們可以將這個描述符看成普通的文件的描述符來操作,這就是linux的設備無關性的 好處。我們可以通過向描述符讀寫操作實現(xiàn)網(wǎng)絡之間的數(shù)據(jù)交流。以下介紹一下程序時常用的函數(shù)。
(1) socket
int socket(int domain, int type,int protocol)
domain:說明我們網(wǎng)絡程序所在的主機采用的通訊協(xié)族(AF_UNIX和AF_INET等)。
type:我們網(wǎng)絡程序所采用的通訊協(xié)議。
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函數(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:儲存了服務器端的連接信息。其中sin_add是服務端的地址。
addrlen:serv_addr的長度。
connect函數(shù)是客戶端用來同服務端連接的。
總的來說網(wǎng)絡程序是由兩個部分組成的--客戶端和服務器端。它們的建立步驟一般是: 服務器端 socket-->bind-->listen-->accept??蛻舳?socket-->connect。

本文引用地址:http://www.2s4d.com/article/152360.htm

4 結語

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

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

上一頁 1 2 3 下一頁

評論


相關推薦

技術專區(qū)

關閉