int socket(int af,int type,int protocol); 服務器
解析:af:地址家族,通常使用AF_INET,表明的是IPv4socket
type:套接字的數據處理類型,主要使用兩種,SOCK_DGRAM和SOCK_STREAM,分別是UDP和TCP。函數
protocol:根據第一參數和第二個參數肯定,肯定支持哪一種協議,通常設置爲0。server
int close(int d);io
通常關閉使用close函數,關閉指定ID的套接字。變量
int shutdown(int socket,int direction);數據
解析:socket:套接字ID,協議
direction:能夠設置爲0,1,2,分別對應着SHUT_RD,SHUT_WR,SHUT_RDWR。端口
struct sockaddr{di
u_short sa_family; //Internet的地址家族
char sa_data[14];
}
解析:sockaddr:由兩個字節的地址家族和包含IP地址和端口號的14個字節的地址構成。
struct in_addr{
u_long s_addr;
}
struct sockaddr_in{
short sin_family;
u_short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
}
解析:sin_family:做爲地址家族,至關於socket函數中個的AF_INET,
sin_port:16比特的端口號,
sin_addr:32比特的IP地址
sin_zero:爲了與struct sockaddr 長度保持一致,設置的填充變量。
int connect(int sockfd,const struct sockaddr* server_addr,socklen_t addrlen);
解析:sockfd:建立的套接字ID
server_addr:前面所述的sockaddr結構,指定數據發送的目的地,也就是服務器的地址。connect是主動鏈接的一方調用的,被動的一方調用的是listen和accept。
addrlen:server_addr結構體的長度。