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

Socket网络编程总结

2016-03-09 22:41 344 查看
1.sockaddr结构体

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

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


  in_addr转字符串的函数:

char *inet_ntoa(struct in_addr inaddr);
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);

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