zoukankan      html  css  js  c++  java
  • C语言:关于socket的基础知识点

    /**
     *      ---结构体---
     *
     *      #include <sys/socket.h>
     *      struct sockaddr {
     *              unsigned short sa_family;
     *              char sa_data[14];
     *      }
     *
     *      #include <netinet/in.h>
     *      struct sockaddr_in {
     *              short int sin_family;           //sa_family_t
     *              unsigned short sin_port;        //in_port_t
     *              struct in_addr sin_addr;
     *              unsigned char sin_zero[8];
     *      }
     *
     *      #include <netinet/in.h>
     *      sturct in_addr {
     *              uint32_t s_addr;
     *      }
     */
    
    /**
     * --IP转换---
     *  ulong inet_addr(const char *ip);    //将一个点分十进制的ip转换成一个网络字节序的长整型数
     *  int inet_aton(const char *ip, struct in_addr *inp);         //将一个字符串ip转换成一个32位的网络字节序
     *  char *inet_ntoa(sturct in_addr in);
     */
    
    /**
     * ---域名转换---
     *  #include <netdb.h>
     *  struct hostent{
     *              char *h_name;
     *              char **h_aliases;
     *              short h_addrtype;
     *              short h_length;
     *              char **h_addr_list;
     *  }
     *  #define h_addr h_addr_list[0]
     *      sturct hostent *h = gethostbyname(const char *hostname); //结果会存在resbuf里边
     *
     */
    
    /**
     * ---字节序转换---
     *  #include <arpa/inet.h>
     *  uint32_t htonl(uint32_t hostlong)
     *  uint32_t ntohl(uint32_t hostlong)
     *      uint16_t htons(unit16_t hostshort)
     *      uint16_t ntohs(uint16_t hostshort)
     */
    
    /**
     * 
     */
    
    /**
     * int socket(int domain, int type, int protocol);
     * int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
     * int listen(int sockfd, int backlog);
     * int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
     * int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
     * int send(int sockfd, const void *buf, size_t len, int flags);
     * int recv(int sockfd, void *buf, size_t len, int flags);
     */
  • 相关阅读:
    十分钟了解HTTPS协议
    浅谈程序员的学历
    浅谈前后模板引擎的利与弊
    简单理解预加载技术
    简单理解懒加载技术
    C#.NET里面抽象类和接口有什么区别
    Select count(*)、Count(1)、Count(0)的区别和执行效率比较
    c#中decimal ,double,float的区别
    C#使用log4net记录日志
    SQLServer无法打开用户默认数据库 登录失败错误4064的解决方法
  • 原文地址:https://www.cnblogs.com/bai-jimmy/p/5417351.html
Copyright © 2011-2022 走看看