unix2

来源:互联网 发布:机锋论坛软件区 编辑:程序博客网 时间:2024/06/11 01:46

    在字节操纵函数中:


         bcopy和memcpy 参数顺序是不一样的。当源字节串与目标字节重叠时,bcopy能够正确处理,

但是memcpy结果却不可知。

     read函数的升级版本readn、readline。在工程代码中是可以参考的。但是readline这样的会很慢。需要改良。主要思路是去操作缓冲区而不是去操作文本行。

AF_XXX 表示地址族 PF_xxx表示协议族

连接的时候返回 connection timed out 和connection refused 与no route to host 情况是不一样的。

 connection timed out   连接超时 有好几个原因 ip不存在 端口问题 或者文件描述符满了

connection refused  收到了服务器相应的RST分节

        no route to host   ICMP错误

产生rst的三个条件: 1 目的地为某端口syn到达,但是该端口上没有正在监听的服务器。

                                  2 tcp想取消一个已有连接

                                  3 tcp接收到一个根本不存在的连接上的分支。


bind 的时候 ip和端口可以指定也可以不指定,内核可以分配。

        getsockname 函数可以获得socket描述符的地址结构的类型


信号是异步的,可以由一个进程发给另一个进程,或者自身。由内核发给某个进程。


==================================分割线======================================


如果服务器断网或者挂掉了:

客户端会持续重传数据,试图接收一个ack

 如果挂掉了又重启了。

               服务器对来自客户端的数据分节相应一个rst。客户端会阻塞在read调用,会出现econnreset错误。


0 0
原创粉丝点击