zoukankan      html  css  js  c++  java
  • 网络编程三

    转自:http://blog.csdn.net/lovelirui/archive/2011/04/08/6309985.aspx

    1.套接口的地址结构确保了进程与内核之间的通讯
    2.套接口的地址结构中保存地址值的是二进制,inet_pton ,inet_ntop 函数用于地址的文本表达式和二进制之间的转换

    3.每个协议族都有自己的地址结构 以sockaddr_开头,后面加协议族后缀,
    网际协议族的地址结构sockaddr_in
    4.结构不参与通讯

    5.进程到内核的函数,内核到进程的函数

    6.字节排序函数来由:不同系统字节排序方式不一样,大端或小端,
    套接口地址结构中某些成员按网络字节序维护,所以需要转换
    htons,htonl,ntohs,ntohl

    7.确定主机字节序程序
    用到union:共用体,共用体的几个变量公用一个内存位置,不同时间可以保存不同的值,同一时间只能存储一个成员变量的值,共用体内存空间是其成员最大的类型空间,但其成员不能为静态;

    8.字节操纵函数
    处理的不是字符串,而是字节;
    第一组函数bzero,bcmp,bcopy----》b代表byte,入参为const的指针,表示函数不可以修改指针所指内存
    第二组函数memset,memcpy,memcmp--》m表示memory,所有memXXX的函数,第三个参数为结构大小,size_t

    9.点分十进制到网络二进制转换函数
    1)几乎废弃的函数inet_aton,inet_addr,inet_ntoa
    inet_addr 无法处理255.255.255.255,因为2^32不包括
    2)inet_pton,inet_ntop
    p 地址表达式 presentation ascii串,n 数值numeric 二进制
    inet_pton ipv4的实现 ,用到了inet_aton函数
    inet_ntop ipv4的实现

    宏定义INET_ADDRSTRLEN 16,INET6_ADDRSTRLEN 46
    用于保存 网络二进制地址转换为点分十进制地址,数组的大小

    10.sock_ntop函数

    什么是对结果静态的存储?为什么阻碍了函数的课重入与线程安全

    为了ipv4与ipv6间移植

    11.readn,writen,readline的实现

    使用readn,writen,readline的原因:在字节流套接口(sock_stream)上读或写的时候,内核的缓冲区达到极限的时候,此时则需要再次调用read或write函数读出或输入剩余的字节

    新版的readline,跟踪一下

    12.issocktype函数:测试一个描述字是否某给定类型----》这种应用用于一个由另外一个程序exec执行的程序中

    其实现用到了fstat函数

  • 相关阅读:
    给大家介绍几个网站学习前端和服务器语言的网站吧,一定有合适你的
    centos用yum安装软件提示:另外一个程序锁定了 yum;等待它退出
    模仿小猎CMS首页功能展示的JS效果
    在centos下安装Node.js 开发环境搭建
    discuz在IIS,apache中分别怎么设置伪静态
    CentOS系统下各文件夹的作用
    centos上网设置
    php微信公众平台开发获取access_token,用CURL出现certificate verify failed错误的解决方法
    12.9 NIO
    12.8 Java 9改进的对象序列化
  • 原文地址:https://www.cnblogs.com/hnrainll/p/2036991.html
Copyright © 2011-2022 走看看