Socket网络编程总结

1.sockaddr结构体

  sockaddr结构体包含了网络地址和端口的一些数据。以下三个函数实现了字符串转sockaddr结构体的功能。

1 int inet_aton(const char *strptr, struct in_addr *addrptr);
2 in_addr_t inet_addr(const char *strptr);
3 int inet_pton(int family, const char *strptr, void *addrptr);

   in_addr转字符串的函数:

1 char *inet_ntoa(struct in_addr inaddr);
2 const char *inet_ntop(int family, const void *addrptr, char *strptr, size_t len);

2.连接时的相关函数,首先是server端

  int sockfd(int family, int type, int protocol)  

  family是指明是IPV4还是IPV6的参数,平常我们用的IPV4是AF_INET。type是指的是面向连接还是数据包的选项,分别是SOCK_STREAM以及SOCK_DGRAM。protocal是协议名,一般默认为0即可。

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

  sockfd是之前的fd,myaddr以及addrlen是sockaddr的地址以及相应的长度。

  int listen(int sockfd, int backlog)

  sockfd是相应的文件描述符,backlog指的是可以有监听多少个客户端。

  int accept(int sockfd, struct sockaddr *myaddr, socklen_t addrlen)

  sockfd为相应的文件描述符,myaddr 以及addrlen为相应的地址和字符长度。

  ssize_t write(int fd, const void *buf, size_t count);

  ssize_t read(int fd, const void *buf, size_t count);

  返回写入与读出的字节数

  close(int fd)

以下是 client端的相关函数:

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

 )

posted @ 2016-03-09 22:41  qtalker  阅读(232)  评论(0编辑  收藏  举报