zoukankan      html  css  js  c++  java
  • 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);

     )

  • 相关阅读:
    单例模式
    grails2.3.11第二课
    grails2.3.11第一课
    【安全】requests和BeautifulSoup小试牛刀
    【解决】国内访问github过慢
    基于Ubuntu14.10的Hadoop+HBase环境搭建
    基于adt-bundle的Android开发环境搭建
    【解决】SAE部署Django1.6+MySQL
    【解决】Django项目废弃SQLite3拥抱MySQL
    【OpenGL】画立方体
  • 原文地址:https://www.cnblogs.com/qtalker/p/4877710.html
Copyright © 2011-2022 走看看