zoukankan      html  css  js  c++  java
  • sock_ntop等函数

    inet_ntop的一个基本问题是:它要求调用者传递一个指向某个二进制地址的指针,

    而该地址通常包含在一个套接字地址结构中,这就要求调用者必须知道这个结构的格式和地址簇,

    为了使用这个函数,我们必须为IPv4编写如下代码:

    struct sockaddr_in   addr;

    inet_ntop(AF_INET,&addr.sin_addr,str,sizeof(str));

    或为IPv6编写:

    struct sockaddr_in6  addr6;

    inet _ntop(AF_INET6,&addr6.sin6_addr,str,sizeof(str));

    这就使得代码和协议相关了。

    为了解决这个问题,我们将自己编写一个名为sock_ntop的函数,

    它以指向某个套接字地址结构的指针为参数,查看该结构的内部,然后调用适当的函数返回该地址的表达式

    char * sock_ntop(const struct sockaddr * sockaddr,socklen_t addrlen);

    sockaddr指向一个长度为addrlen的套接字地址结构,本函数用它自己的静态缓冲区来保存结果,而指向该缓冲区的一个指针就是它的返回值

    我们还可以定义其他几个函数,简化IPv4与IPv6之间的移植

    sock_bind_wild将通配地址和一个临时端口捆绑到一个套接字

    sock_cmp_addr比较2个套接字地址结构的地址部分

    sock_cmp_port比较2个套接字地址结构的端口部分

    sock_get_port只返回端口号

    scok_ntop_host把一个套接字地址结构中的主机部分转换成表达格式(不包括端口号)

    ....

    ========================if i have some wrong, please give me a message, thx.========================
  • 相关阅读:
    js 整站模式窗口打开
    WebDev.WebServer 学习
    AjaxPro.2.dll基本使用
    jQuery.get(url,[data],[callback])
    ASP.NET CheckBoxList复选框
    Win7开发系列: windows服务操作基础
    .NET Remoting开发系列:(三) Remoting服务发布方式
    mysql 视图操作和存储过程
    Flash Lite1.1错误代码表
    myeclipse svn 清除缓存用户和密码
  • 原文地址:https://www.cnblogs.com/ailx10/p/5348357.html
Copyright © 2011-2022 走看看