套接字

套接字

1、定義

int socket(int af,int type,int protocol); 服務器

解析:af:地址家族,通常使用AF_INET,表明的是IPv4socket

   type:套接字的數據處理類型,主要使用兩種,SOCK_DGRAM和SOCK_STREAM,分別是UDP和TCP。函數

   protocol:根據第一參數和第二個參數肯定,肯定支持哪一種協議,通常設置爲0。server

2、關閉

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。端口

3、有關套接字的結構體

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 長度保持一致,設置的填充變量。

 

4、connect

int connect(int sockfd,const struct sockaddr* server_addr,socklen_t addrlen);

解析:sockfd:建立的套接字ID

  server_addr:前面所述的sockaddr結構,指定數據發送的目的地,也就是服務器的地址。connect是主動鏈接的一方調用的,被動的一方調用的是listen和accept。

  addrlen:server_addr結構體的長度。

相關文章
相關標籤/搜索