Linux下Socket編程學習(二)

socket函數

包頭文件<sys/socket.h>

創建一個套接字用於通信

int socket(int domain,int type,int protocol);

domain:指定通信協議族

type:指定socket類型,流失套接字SOCK_STREAM 數據報套接字SOCK_DGRAM 原始套接字SOCK_RAW

protocol:協議類型

返回值:成功返回非負整數,它與文件描述符類似,失敗返回-1


listen(int sockfd,int backlog)

包頭文件<sys/socket.h>

將套接字用於監聽進入的連接

參數

 sockfd :socket函數返回的套接字

  backlog:規定內核爲此套接字排隊的最大連接個數(包含已完成連接隊列和未完成的連接隊列)

返回值 成功返回0  失敗返回-1

listen函數應該在調用socket和bind函數之後,調用函數accept之前調用。會將主動套接字編程被動套接字


主動套接字:用戶發起連接   調用connect來發起連接

被動套接字:接收連接   調用accept函數來接收連接


int accept(int sockfd,struct sockaddr *addr, socklen_t* addrlen);

功能:從已完成連接隊列返回一個連接,如果已完成連接隊列爲空,則阻塞

sockfd:服務器套接字

addr:將返回對等放的套接字地址

addrlen:返回對等方的套接字長度

返回值:成功返回非負整數,失敗返回-1









發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章