易截截图软件、单文件、免安装、纯绿色、仅160KB

linux socket学习笔记(第二章)


域和地址族
    有一个很恰当的比喻说明套接口编程,套接口就好比电话,而电话网中的电话号码就好像套接口地址。说明套接口可以用特定的地址来标示自己。并不是所有的套接口都需要地址,比如无名套接口就不需要地址,例如函数socketpair(2)就生成了一对互相可以连接但是却没有地址的套接口。书中比喻说就好像是冷战时期苏联和美国之间的热线电话一样,直接相连,不需要电话号码。
    域(domain),在socket中,不仅可以支持TCP/IP协议,也可以支持其他协议,socket中的参数domain的作用正在于此。回顾一下socketpair(2)函数的语法可以看到。
    #include <sys/types.h>
    #include <sysy/socket.h>
   
    int socketpair( int domain , int type , int protocol , int sv[2] );
    在socketpair(2)函数中,domain参数要么是AF_LOCAL,要么是AF_UNIX. 其实他们是等价的。AF_LOCAL的前缀AF表示地址族(address family),domain参数的用途就是说明函数是采用哪个地址族。之后还会出现PF_的宏,现在可以暂时认为是等价的。
    AF_LOCAL表示使用本地地址规则来生成地址,AF_INET表示使用IP地址规则来生成地址。BSD的解决方案提供了一种通用的地址结构如下:
    #include <sys/socket.h>
   
    struct sockaddr{
        sa_family_t sa_family ;         /* 地址族 */
        char  sa_data[14] ;               /* 地址数据 */
    };
    对于编程者来说,通用套接口本身没有什么用处,但是它为其他地址结构提供了一个重要的参考模型,比如所有的地址都要在结构中的同样位置定义sa_family成员,因为他决定了怎么翻译结构中包含地址信息的字节。
    生成本地地址AF_LOCAL或者AF_UNIX的地址的结构名是sockaddr_un.
    在Linux中,使用最普遍的地址族是AF_INET.具有IPv4套接口地址的套接口可以与TCP/IP上的其他主机进行通信。一下是C语言描述的结构sockadd


相关文档:

学习linux的苦恼

       接触Linux也是很久的事情了,不过自我感觉却从来没有揭开过它的真面纱。从我工作以来到现在,几乎总会用到linux或在linux系统上进行工作,也一直想把linux搞懂。但是,由于总感觉Linux的庞大,英文资料难以阅读,加上自身非常的懒散,因此几次下定决心,最终还是不了了之吧。 ......

linux下nfs tftp 配置使用

linux下几种服务器的配置使用之一:nfs tftp 
安装nfs需要在服务器端关闭iptables防火墙,关闭方法如下
查看防火墙状态:
/etc/init.d/iptables status
暂时关闭防火墙:
/etc/init.d/iptables stop
禁止防火墙在系统启动时启动
/sbin/chkconfig --level 2345 iptables off
重启iptables:
/etc/init.d/iptabl ......

Linux vmalloc的实现

内核版本:2.6.28
linux如何利用伙伴系统,slab分配器分配内存,用这些方法得到的内存在物理地址上都是连续的, 然而,有些时候,每次请求内存时,系统都分配物理地址连续的内存块是不合适的,可以利用小块内存“连接”成大块可使用的内存.这在操作系统设计中也被称为 “内存拼接”,显然,内存拼接在需要较大内 ......

linux 隐式调用 自己写的动态库

~/test
|
|
|------main.c
|------lib
|        |
|        |------StringLen.h
|        |------Strlen.c
|        |------Strnlen.c
----------------StringLen.h:
#ifndef _STRING ......

QQ For Linux在Ubuntu 9.10下经常自动退出的解决方法

  因为学习需要,最近用上了ubuntu 9.10.可是却发现qq for linux总是莫名其妙的自己退出。今天忍受不了了,上网找答案。原来不是我人品的问题。最终从下面这文章中找到了解决方法。
原文如下:
QQ官方提供的QQ For Linux在Ubuntu
9.10下安装之后,经常出现没聊几句天就会自动退出的bug,原因是QQ For Linux与Ubunt ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号