精华内容
参与话题
问答
  • 永远Unix的博客

    2011-03-07 23:25:23
    永远Unix的博客 http://fanqiang.chinaunix.net/a1/b3/20011003/0900001391.html
    永远的Unix的博客
    http://fanqiang.chinaunix.net/a1/b3/20011003/0900001391.html
    展开全文
  • 套接口编程基础 转载自:永远UNIX

    千次阅读 2005-02-22 23:58:00
    转载自:永远的UNIXhttp://fanqiang.chinaunix.net/index.shtml 套接口编程基础本文出自:http://sunsland.top263.net 作者: (2001-10-22 10:00:00) IPv4 套接口地址结构 struct in_address { in_addr_t s_a

    转载自:永远的UNIX
    http://fanqiang.chinaunix.net/index.shtml

     

    套接口编程基础

    本文出自:http://sunsland.top263.net 作者: (2001-10-22 10:00:00)
        
     
       
    IPv4 套接口地址结构
    struct in_address {
    in_addr_t s_addr ;
    }
    // 32bits IPv4 地址
    //网络字节顺序 Network Byte Order

    struct sockaddr_in{
    unit8_t sin_len; //长度成员, 无需设置
    sa_family_t sin_family; //套接口结构地址族,AF_INET
    in_port_t sin_port; //16位TCP 或 UDP 端口号
    struct in_addr sin_addr; //32位TCP 或 UDP 端口地址
    char sin_zero[8]; //未用
    }
    //in: internet
    //s: socket


    --------------------------------------------------------------------------------

    通用套接口地址结构
    套接口地址结构仅在给定主机上使用。结构中的某些成员(IP地址和端口号)用在不同主机

    间的通信中,但结构本身并不参与通信.

    当作为参数传递给任一个套接口函数时,套接口地址结构总是通过指针来传递,但通过指

    针来取得此参数的套接口函数必须处理来自所支持的任何协议族的套接口地址结构.

    通用套接口结构

    struct sockaddr{
    uint8_t sa_len;
    sa_family_t sa_family;
    char sa_data[14]
    };

    通用的套接口地址结构的用途:给指向持定于协议的地址结构的指针转换类型。


    --------------------------------------------------------------------------------

    强制类型转换
    函数的调用:

    将指向特定于协议的套接口地址结构的指针类型-> 指向通用套接口地址结构的指针。

    函数原型:
    int connect( int, struct sockaddr *, socklen_t)

    ..............
    struct sockaddr-in servaddr;

    ..................

    connect(sockfd,(sturct sockaddr *) &servaddr, sizeof(servaddr));
    .....................


    --------------------------------------------------------------------------------

    字节排序函数
    一个16位整数,它由2个字节组成。

    内存中存储这两个字节有两种方法:

    小端字节序:低序字节存储在起始地址

    大端字节序:高序字节存储在起始地址

    网际协议必须指定一个网络字节序(Network Byte Order)

    主机字节序和网络字节序的转换函数:

    #include <netinet/in.h>
    unit16_t htons(uint16_t host16bitvalue);

    unit32_t htons(uint32_t host32bitvalue);

    unit16_t ntohs(uint16_t net16bitvalue);

    unit32_t ntohs(uint32_t net32bitvalue); 

    h : host 
    n : network
    s : short (16 bits)
    l : long (32 bits) 


    --------------------------------------------------------------------------------

    字节/字节流操纵函数
    void bzero(void *dest,size_t nbytes);//清零

    void bcopy(const void *src,void *dest,siz_t nbytes);

    int bcmp(const void *ptr1,const void *ptr2,size_t nbytes);

    返回:0——相等,非0——不相等
    void *memset(void *dest,int c,size_t len);

    void *memcpy(void *dest,const void *src,size_t nbytes);

    it memcmp(const void *ptr1,const void *ptr2,size_t nbytes);

    返回:0——相同,非0——不相同

    字节流读写函数

    ssize_t readn(int filedes, void * buff, size_t nbytes);

    ssize_t writen(int filedes, const void *buff, size_t nbytes);

    ssize_t readline(intfiledes, void *buff, size_t maxlen);


    --------------------------------------------------------------------------------

    地址转换函数
    #include <arpe/inet.h>

    int inet_aton(const char *strptr,struct in_addr *addrptr);

    返回:1——串有效,0——串出错

    in_addr_t inet_addr(const char *strptr);

    返回:若成功,返回32位二进制的网络字节序地址;若出错,则返回INADDR_NONE

    char *inet_ntoa (struct in_addr inaddr);

    返回:指向点分十进制数串指针 

    ine-aton 将 strptr 所指的C字符串转换成32位的网络字节序二进制值并通过指针

    addrptr来存储。如果成功返回1,否则返回0。

    inet-addr 将 strptr 所指的C字符串转换成32位的网络字节序二进制值并通过涵数值返回。

    函数inet-ntoa将一个32位的网络字节序二进制IPv4地址转换成相应的点分十进制数串。

    如: 202.116.34.194.4000 (IP:202.116.34.194 端口4000)

    可用于 IPv4 和 IPv6的函数

    int inet_pton(int family,const char *strptr,void *addrptr);

    const char *inet_ntop(int family.const void *addrptr,char *strptr,size_t len);

    p: presentation 地址的表示 202.116.34.194

    n: numeric 数值格式 16bits/32bits integer


    family : AF_INET 或 AF_INET6

     

    0:07:02

    展开全文
  • 永远UNIX大全

    2019-01-17 12:10:28
    永远UNIX,介绍了所有跟UNIX有关的知识点,值得一阅
  • 永远unix

    2012-07-27 17:27:05
    http://fanqiang.chinaunix.net/program/netpro/index.shtml
    展开全文
  • 永远UNIX

    2018-12-26 12:26:29
    永远UNIX,包含了论坛精华区最新文章,论坛新话题,包含了unix的方方面面
  • 永远UNIX Expect教程

    2012-11-14 14:40:55
    永远UNIX Expect教程
  • 在www.fanqiang.com(永远UNIX)网站上也有一系统文章,比较详细地介绍了网络编程的各函数,大家可以去那边看看,我就不复制过来了。那边系列文章的目录和链接如下:Linux网络编程--1. Linux网络知识介绍1.1 客户端...
    在www.fanqiang.com(永远的UNIX)网站上也有一系统文章,比较详细地介绍了网络编程的各函数,大家可以去那边看看,我就不复制过来了。
    那边系列文章的目录和链接如下:

    Linux网络编程--1. Linux网络知识介绍



    1.1 客户端程序和服务端程序
    1.2 常用的命令
    1.3 TCP/UDP介绍

    Linux网络编程--2. 初等网络函数介绍(TCP)



    2.1 socket
    2.2 bind
    2.3 listen
    2.4 accept
    2.5 connect
    2.6 实例
    2.7 总结

    Linux网络编程--3. 服务器和客户机的信息函数



    3.1 字节转换函数
    3.2 IP和域名的转换
    3.3 字符串的IP和32位的IP转换
    3.4 服务信息函数
    3.5 一个例子

    Linux网络编程--4. 完整的读写函数



    4.1 写函数write
    4.2 读函数read
    4.3 数据的传递

    Linux网络编程--5. 用户数据报发送



    5.1 两个常用的函数
    5.2 一个实例

    Linux网络编程--6. 高级套接字函数



    6.1 recv和send
    6.2 recvfrom和sendto
    6.3 recvmsg和sendmsg
    6.4 套接字的关闭
    6.5 shutdown

    Linux网络编程--7. TCP/IP协议



    7.1 网络传输分层
    7.2 IP协议
    7.3 ICMP协议
    7.4 UDP协议
    7.5 TCP
    7.6 TCP连接的建立

    Linux网络编程--8. 套接字选项



    8.1 getsockopt和setsockopt
    8.2 ioctl

    Linux网络编程--9. 服务器模型



    9.1 循环服务器:UDP服务器
    9.2 循环服务器:TCP服务器
    9.3 并发服务器:TCP服务器
    9.4 并发服务器:多路复用I/O
    9.5 并发服务器:UDP服务器
    9.6 一个并发TCP服务器实例

    Linux网络编程--10. 原始套接字 --11. 后记



    10. 原始套接字
    10.1 原始套接字的创建
    10.2 一个原始套接字的实例
    10.3 总结
    11. 后记


    学习任何知识都不能光看不练。必须动手练习,对于这些函数,自己写个小程序测试一下其用法就会很明了了。
    展开全文
  • 如何使Unix 下环境变量设置永远有效

    千次阅读 2009-08-24 10:45:00
    Unix操作系统中可以在shell中通过set命令给环境变量赋值。但是如果采用这种方式对环境变量进行赋值的话,当重新启动操作系统或者重新启动这个会话的话,原先设置的环境变量就会丢失。也就是说,如果在shell会话中...
  • Unix/Linux fork前传

    万次阅读 多人点赞 2019-09-09 08:15:00
    本文是《Linux fork那些隐藏的开销》的前传。fork的由来fork的思想在UNIX出现几年前就出现了,时间大概是1963年,这比UNIX在PDP-7上的第一个版本...
  • [总结]Unix设计哲学 <<Unix编程艺术>>

    千次阅读 2012-05-29 08:32:12
    学习了第一章关于哲学...但早在Unix发展的时期, 这一条原则却是在实践中不断提炼出来的. 这就是最为根本的一条:  KISS - Keep it Simple, Stupid! 精神上可以相较于"大智若愚"。Unix最为崇尚的是实用至上, 拿来主义。
  • Unix哲学

    2014-08-09 13:01:12
    McIlroy:四分之一世纪的 Unix编辑 Douglas McIlroy是Unix系统上管道机制的发明者,也是Unix文化的缔造者之一。他归纳的Unix哲学如下: 程序应该只关注一个目标,并尽可能把它做好。让程序能够互相协同工作。...
  • Unix c 入门指导

    千次阅读 2008-02-17 16:32:00
    写给C语言初学者的话前些天我写了一篇"UnixC语言值得注意的地方"一贴,回贴中谈到学习国外的开源软件中的高质量代码的问题,但是有朋友跟我说,在看代码的过程中感觉难度很大,想想也是如此,动辄十几万行的程序如果没有...
  • Unix 的设计原则

    千次阅读 2007-07-04 19:23:00
    Unix 哲学-->摘要-----------------感受很深,分享一下--------- 要良好的运用Unix 哲学,你就应该不断追求卓越。你必须相信,软件设计是一门技艺,值得你付出所有的智慧、创造力和激情。否则,你的视线就不会超越...
  • 我看UNIX与Windows的本质区别

    万次阅读 热门讨论 2010-10-13 22:38:00
    文化,我首先想到的是文化。Unix和Windows从诞生之初的文化差异本质上划分了两者的界限。直观看来,一个装逼文化,一个傻逼文化。
  • UNIX & LINUX学习之开始使用Unix 系统管理员、用户标识和口令 所有的Unix系统都需要管理和维护。执行这些职责的人称为系统管理员(system administrator),通常称为sysadmin或者admin。 在使用Unix计算机之前,...
  • unix 文本编辑命令巧用

    千次阅读 2007-02-07 19:56:00
    Unix系统永远只会越来越多,开发人员就没必要特意学习它们的安装、配置和管理了,就全部交给集成人员吧。 但开发人员行走于Unix之间,依然有四样东西要熟练。 一、VI 虽然Unix上的文本编辑器已经越来越好用,但不...
  • 朴素的UNIX之-调度器细节

    千次阅读 2014-10-12 12:21:15
    0.多进程调度的本质我们都知道UNIX上有一个著名的nice调用,何谓nice,当然是“好”了,常规的想法是nice值越大越好,实际上,nice值越好,自己的优先级越低,那么为何不用badness呢? 事实上,如果我们理解了操作...
  • [转]Unix入侵检查

    千次阅读 2006-05-26 15:06:00
    unix入侵监测系统 from: http://www.1717happy.com/?action=show&id=102 因为UNIX系统经常承当着关键任务,所以它经常是入侵者攻击的首选目标。于是检测入侵、保护系统安全是管理员的最为重要的任务之一。那么,在...
  • Unix哲学

    千次阅读 2012-07-05 13:07:18
    Unix哲学”起源于Ken Thompson在早期关于如何设计一个设计接口简洁、小巧精干的操作系统的思考。随着Unix文化在学习如何尽可能发掘Thompson设计思想的过程中不断成长,同时它还一路上博采众长。   Unix哲学...
  • Unix痛恨者手册zz UNIX hater' guide

    千次阅读 2007-02-02 16:43:00
    转载自:Simson Garfinkel, Daniel Weise, Steven Strassmann原文由pengchengzou张贴 张贴者: pengchengzou (old hand)张贴日期 06/20/02 21:33一本很有趣的书, 是那些用惯UNIX的人对UNIX的各种指责,诋毁,谩骂和...

空空如也

1 2 3 4 5 ... 20
收藏数 60,911
精华内容 24,364
热门标签
关键字:

永远的unix