TCP是无记录边界的字节流协议。
    TCP本身不提供记录结束标记,应用程序需要确定记录边界的话,必须自己去实现。FTP和SMTP使用\r\n构成序列终止记录。Sun RPC和DNS使用TCP时,在每个记录的前面放一个二进制计数值,由它给出记录的长度。
    错误处理:包裹函数
    每当在一个Unix函数发生错误时,全局变量errno将被置成一个指示错误类型的正数,函数本身则通常返回-1。err_sys检查errno变量并输出其相应的出错消息。如果函数不返回错误,errno的值就没有定义。值0不表示任何错误。
    把errno值存于全局变量不适合共享所有全局变量的多线程。
    snprintf检查目标缓冲区是否溢出。
    应用程序可以使用原始套接口绕过传输层而直接使用IPv4或IPv6。
    OSI上三层处理应用程序的细节,不大知道通信细节,下四层则不大知道应用程序,但能处理所有的通信细节:发送数据,等待确认,给无序到达的数据排序,计算和验证校验和等;上三层通常形成用户进程,下四层通常作为操作系统的内核的一部分提供,Unix分隔用户进程和内核的机制。在上三层和下四层之间的接口很自然成了应用程序编程接口(API)。
                
            
        
                    
                
浙公网安备 33010602011771号