Socket网络编程总结

拜拜、爱过 提交于 2019-12-23 03:43:14

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);

 )

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!