zoukankan      html  css  js  c++  java
  • struct servent

    一、servent结构体声明

    struct servent {

      char FAR* s_name;

      char FAR* FAR* s_aliases;

      short s_port;

      char FAR* s_proto;

    };

    二、结构成员

    s_name 正规的服务名。(服务名)
    s_aliases 一个以空指针结尾的可选服务名队列。(服务别名列表)
    s_port 连接该服务时需要用到的端口号,返回的端口号是以网络字节顺序排列的。(端口号)
    s_proto 连接该服务时用到的协议名。(使用的协议)
    返回的指针指向一个由Windows Sockets实现分配的结构。应用程序不应该试图修改这个结构或者释放它的任何部分。此外,每一线程仅有一份这个结构的拷贝,所以应用程序应该在发出其他Windows Scokets API调用前,把自己所需的信息拷贝下来。
     

    三、补充说明

    FAR 是16位系统时候的概念了,代表远指针的意思。

    近指针是16位的指针,它只表示段内的偏移地址,因而只能对64k字节数据段内地址进行存取。

      如 char near *p;

      p=(char near *)0xffff;

    远指针是32位指针,它表示 段地址:偏移地址,如定义远程指针p指向B500段的2号地址,即B500:0002,则可写作:

      char far *p; 

      p=(char far *)0xB5000002;

      因此,远指针可以进行跨段寻址,可以访问整个内存的地址。

         16位系统有远近指针之分的环境中,得告诉编译器指针变量h_name强制使用远指针方式。因为16位系统寻址范围只有2^16=64K,所以用FAR指针,再加上16位,高16位存放的是变量的段地址,低16位存放变量的段内偏移。

  • 相关阅读:
    Go学习(5):集合
    Go学习(4):数组和切片
    Go学习(3):分支循环
    Go学习(2):基本语法
    Go学习(1):简介和配置
    input输入框只能输入数字而且开头不能为零
    JS 显示周 几和 月 日
    IntelliJ Idea 跳出括号并且光标移到末尾的快捷键
    不可小视的String字符串
    PrintWriter中的write与println方法居然就是这些区别
  • 原文地址:https://www.cnblogs.com/cyx-b/p/12450217.html
Copyright © 2011-2022 走看看