您的位置:首页 > 理论基础 > 计算机网络

TCPIP编程

2016-03-06 09:33 591 查看
1、线程函数遇到错误时不设置unix标准errno值,而是作为函数返回值返回给调用者

2、MTU = MSS + IP头(20) + TCP头(20)

3、套接字地址结构:

通用套接字地址结构
struct sockaddr{
unit8_t sa_len;
sa_family_t sa_family;        /* AF_XXX */
char sa_data[14];            /* 协议地址 */
};


IPv4地址结构
struct in_addr{
in_addr_t s_addr;            /* 32bit addr */
};

struct sockaddr_in{
unit8_t sin_len;
sa_family_t sin_family;    /* AF_INET */
in_port_t sin_port;
struct in_addr sin_addr;
};


通配地址    servaddr.sin_addr.s_addr = htonl(INADDR_ANY);


4、字节序转换: htons htonl ntohs ntohl

5、地址转换函数:

int inet_pton(int family, const char *restrict str, void *restrict add);
字符串有效返回1,格式无效0,出错-1
const char *inet_ntop(int family, const char *restrict str, void *restrict add);
           出错返回NULL


6、socket函数:

int socket(int family, int type, int protocol);
  TCP: socket(AF_INET, SOCK_STREAM, 0);
  UDP: socket(AF_INET, SOCK_DGRAM, 0);


7、connect函数:

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


8、bind函数:

int bind(int sockfd, const struct sockaddr *myaddr, socklen_t addrlen);


9、listen函数:

int listen(int sockfd, int backlog);


10、accept函数:

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


11、返回套接字本端/对端地址

int getsockname(int sockfd, struct sockaddr *localaddr, socklen_t *addrlen);
int getpeername(int sockfd, struct sockaddr *peeraddr, socklen_t *addrlen);


12、shutdown    howto:SHUT_RD  SHUT_WR  SHUT_RDWR

int shutdown(int sockfd, int howto);


13、
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: