• 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);
     */
  • 相关阅读:
    iis 部署网站常见问题
    提高你开发效率的十五个Visual Studio 2010使用技巧
    SQL SERVER 错误代码 0x534
    SQL Server2005修改计算机名后不能发布订阅
    Fedora桌面系统Idea中的部分中文无法显示解决
    最近去滴滴面试的一道题:斐波拉契数列非递归实现
    二叉查找树之红黑树
    二叉查找树之AVL树
    二叉查找树
    再看SpringMVC通过一个DispatcherServlet处理Servlet
  • 原文地址:https://www.cnblogs.com/bai-jimmy/p/5417351.html
Copyright © 2020-2023  润新知