TCP连接

#xiaodeng
#TCP连接
#HTTP权威指南 83



#HTTP连接时HTTP报文传输的关键通道。编写http应用程序的程序员需要理解http连接的来龙去脉及如何使用这些连接。
#TCP连接:
    #世界上几乎所有的http通信都是tcp/ip承载。客户端应用横须可以打开一条tcp/ip连接,连接到可能运行在世界任何地方的服务器应用程序。一旦连接建立起来,在客户端和服务器的计算机之间交换的报文就不会丢失。
    
    
#如:http://www.joes-hardware.com:80/power-tools.html
#浏览器收到这个URL,会进行下面的步骤:    
    #第1~3步:会将服务器的IP地址和端口号从URL中分离出来
    #第4步:建立到web服务器的tcp连接
    #第5步:通过这条连接发送一条请求报文
    #第6步:读取响应
    #第7步:关闭连接。
    
    
    
#4.1.1 TCP的可靠数据管道
    #http连接实际上就是tcp连接和一些使用连接的规则。
    #要想正确、快速的发送数据,就需要了解tcp的一些基本知识 。
    #如下图--(web浏览器提供TCP连接与web服务器进行交互)
    
    
#4.1.2 TCP流是分段的,由IP分组传送的
    '''
    HTTP要传送一条报文时,会以流的形式将报文数据的内容通过一条打开的TCP连接按序传输
    TCP收到数据流之后,会将数据流砍成被称作段的小数据块,并将段封装在ip分组中,通过因特网进行传输。
    所有这些操作都有TCP/ip软件来处理,程序员无法看到。
    '''
#4.1.3 保持TCP连接的正确运行
    '''
    1、在任意时刻,计算机都可以有几条TCP连接处于打开状态,TCP是通过端口号来保持所有这些连接的正确运行
    2、端口号和雇员使用的电话分机号很类似。
    3、TCP连接通过4个值来识别:<源IP地址、源端口号、目的IP地址、目的端口号>
    '''
#4.1.4 用TCP套接字编程
    '''
    1、操作系统提供了一些操作TCP连接的工具。---TCP编程接口
    '''
    
    表4-2 对TCP连接进行编程所需的常见套接字接口函数
    ——————————————————————————————————————————————————————————————————————————————————
    套接字API调用                                描述
    ==================================================================================
    s=socket(<parameters>)                         创建一个新的,未命名的、未关联的套接字
    bind(s,<local IP:port>)                        向套接字赋一个本地端口号和接口
    connect(s,<remote IP:port>)                    创建一条连接本地套接字与远程主机及端口的连接
    listen(s,....)                                 标识一个本地套接字,使其可以合法接受连接
    s2=accept(s)                                   等待某人建立一条道本地端口的连接
    n=read(s,buffer,n)                             尝试从套接字向缓冲区读取n个字节
    n=write(s,buffer,n)                            尝试从缓冲区中向套接字写入n个字节
    close(s)                                       完全关闭TCP连接
    ——————————————————————————————————————————————————————————————————————————————————

 

posted @ 2015-11-01 11:45  Xiao|Deng  阅读(324)  评论(0编辑  收藏  举报