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