新聞中心
linux網(wǎng)絡(luò)編程之函數(shù)使用指南

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、重慶小程序開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了通道免費建站歡迎大家使用!
本文分析Linux網(wǎng)絡(luò)編程的相關(guān)函數(shù)的使用方法,給出實例代碼,針對程序員進行參考。
首先要明確的是,Linux下的網(wǎng)絡(luò)編程是基于BSD SOCKET的,基礎(chǔ)的函數(shù)有socket,bind,listen,accept,connect,send,recv等。socket函數(shù)最為基礎(chǔ),它可以創(chuàng)建一個新的socket文件描述符,來做跟網(wǎng)絡(luò)連接有關(guān)的操作,函數(shù)聲明如下:
int socket(int domain, int type, int protocol);
socket函數(shù)返回創(chuàng)建出來的新描述符,可以用來做send, recv, bind等操作:
// 創(chuàng)建一個套接字
int sockfd = socket(AF_INET, SOCK_STREAM, 0);
if(sockfd
perror(“socket error\n”);
return -1;
}
bind函數(shù)的作用是對創(chuàng)建的socket文件描述符進行一些初始化操作,最關(guān)鍵的一步就是將socket綁定到一個IP+Port組合上面,函數(shù)聲明如下:
int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
實例如下:
struct sockaddr_in saddr;
saddr.sin_family = AF_INET;
saddr.sin_port = htons(port);
saddr.sin_addr.s_addr = htonl(INADDR_ANY);
if (bind(sockfd, (struct sockaddr *) &saddr, sizeof(saddr))
perror(“bind error\n”);
}
listen函數(shù)也是置建立TCP服務(wù)端很重要,它用來進行監(jiān)聽,當客戶端發(fā)起連接時,listen函數(shù)會收到連接,函數(shù)聲明如下:
int listen(int sockfd, int backlog);
// backlog 表示最大的接收的連接請求數(shù)
實例代碼:
if (listen(sockfd, 5)
perror(“l(fā)isten error\n”);
}
connect函數(shù)用來主動連接服務(wù)器,其函數(shù)聲明如下:
int connect(int sockfd, const struct sockaddr *etaddr, socklen_t addrlen);
實例代碼:
if(connect(sockfd, (struct sockaddr *) &saddr, sizeof(saddr))
perror(“connecterror\n”);
}
send和recv函數(shù)用來發(fā)送接收數(shù)據(jù),send函數(shù)的函數(shù)聲明如下:
ssize_t send(int sockfd, const void *buf, size_t len, int flags);
其中發(fā)送數(shù)據(jù)的buf地址可以是一個字符串,也可以是一個擁有實際數(shù)據(jù)的結(jié)構(gòu)體。接收數(shù)據(jù)的函數(shù)聲明如下:
ssize_t recv(int sockfd, void *buf, size_t len, int flags);
recv函數(shù)有助于接收數(shù)據(jù),參數(shù)里的buf可以指向一個結(jié)構(gòu)體,也可以是一個字符串。
以上就是Linux網(wǎng)絡(luò)編程中函數(shù)使用指南,這些函數(shù)都是基于BSD Socket而言,而在使用這些網(wǎng)絡(luò)編程函數(shù)的時候,需要注意使用這些函數(shù)的參數(shù),我們可以使用不同的參數(shù)以及實例代碼對建立一個TCP服務(wù)端進行配置,具體的內(nèi)容可以參見man手冊,或者查閱相關(guān)資料。
成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網(wǎng)、IDC服務(wù)、應(yīng)用軟件開發(fā)、網(wǎng)站建設(shè)推廣的公司,為客戶提供互聯(lián)網(wǎng)基礎(chǔ)服務(wù)!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡單好用,價格厚道的香港/美國云服務(wù)器和獨立服務(wù)器。創(chuàng)新互聯(lián)成都老牌IDC服務(wù)商,專注四川成都IDC機房服務(wù)器托管/機柜租用。為您精選優(yōu)質(zhì)idc數(shù)據(jù)中心機房租用、服務(wù)器托管、機柜租賃、大帶寬租用,可選線路電信、移動、聯(lián)通等。
網(wǎng)頁標題:Linux網(wǎng)絡(luò)編程之函數(shù)使用指南(linux網(wǎng)絡(luò)編程函數(shù))
轉(zhuǎn)載來于:http://m.5511xx.com/article/dhesjsi.html


咨詢
建站咨詢
