日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux blind函数,Linux网络编程入门

發布時間:2024/4/14 linux 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux blind函数,Linux网络编程入门 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上一節創建socket時,僅指定了協議類型以及服務類型,但是沒有指定具體的socket地址。

bind函數含義如詞義,給上述創建的套接字socket綁定一個socket地址。

比喻如下:我們創建了socket(安裝電話機)以后,需要進行socket命名(應該去中國聯通申請一個電話號碼,并將該號碼和電話機進行綁定)。

bind函數的Linux頭文件以及函數定義如下:

#include

int bind(int sockfd, const stuct sockaddr *my_addr, socklen_t addrlen);

bind函數參數以及返回值如下:

/**

* socket命名

*

* @param sockfd socket文件描述符,上節socket函數返回的值

* @param my_addr socket地址

* @param addrlen socket地址的長度

* @return 函數執行成功返回0,失敗返回-1

*/

int bind(int sockfd, const stuct sockaddr *my_addr, socklen_t addrlen);

結合之前socket地址初始化方法,寫個程序,完成命名socket。

#include

#include // exit

#include

#include // sockaddr_in

#include

int main(int argc, char *argv[])

{

const char *server_ip = "127.0.0.1"; // IP地址字符串

int server_port = 0x1234;

int server_socket;

server_socket = socket(PF_INET, SOCK_STREAM, 0);

if (server_socket == -1) {

perror("socket create error");

exit(1);

}

printf("socket is %d\n", server_socket);

struct sockaddr_in address;

memset(&address, 0, sizeof(address));

address.sin_family = AF_INET;

address.sin_port = htons(server_port);

address.sin_addr.s_addr = inet_addr(server_ip);

if (bind(server_socket, (struct sockaddr*)&address, sizeof(address)) == -1) {

perror("bind error");

exit(1);

}

printf("bind ok\n");

return 0;

}

第13行創建一個socket。

第20~24行初始化一個socket地址,和之前相同。

第26行利用bind函數完成命名socket。

右側打開bind_test.c文件,試添加bind函數,并編譯測試。

總結

以上是生活随笔為你收集整理的linux blind函数,Linux网络编程入门的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。