zoukankan      html  css  js  c++  java
  • TCP的半连接

    T C P提供了连接的一端在结束它的发送后还能接收来自另一端数据的能力。这就是所谓
    下载
    的半关闭。正如我们早些时候提到的只有很少的应用程序使用它。
    为了使用这个特性,编程接口必须为应用程序提供一种方式来说明“我已经完成了数据
    传送,因此发送一个文件结束( F I N)给另一端,但我还想接收另一端发来的数据,直到它给
    我发来文件结束(F I N)”。
    如果应用程序不调用c l o s e而调用s h u t d o w n,且第2个参数值为1,则插口的A P I支持
    半关闭。然而,大多数的应用程序通过调用close终止两个方向的连接。


    为什么要有半关闭?一个例子是 U n i x中的r s h( 1 )命令,它将完成在另一个系统上执行一
    个命令。命令
    sun % rsh bsdi sort < datafile
    将在主机b s d i上执行s o r t排序命令,r s h命令的标准输入来自文件d a t a f i l e。r s h将在它
    与在另一主机上执行的程序间建立一个 T C P连接。 r s h的操作很简单:它将标准输入
    (d a t a f i l e)复制给T C P连接,并将结果从 T C P连接中复制给标准输出(我们的终端)。图显示了这个建立过程(牢记TCP连接是全双工的)。

    在远端主机b s d i上,r s h d服务器将执行s o r t程序,它的标准输入和标准输出都是 T C P
    连接。
    s o r t程序只有读取到所有输入数据后才能产生输出。所有的原始数据通过 T C P连接从
    r s h客户端传送到s o r t服务器进行排序。当输入( d a t a f i l e)到达文件尾时, r s h客户端
    执行这个T C P连接的半关闭。接着s o r t服务器在它的标准输入(这个 T C P连接)上收到一个
    文件结束符,对数据进行排序,并将结果写在它的标准输出上( T C P连接)。r s h客户端继续
    接收来自T C P连接另一端的数据,并将排序的文件复制到它的标准输出上。
    没有半关闭,需要其他的一些技术让客户通知服务器, 客户端已经完成了它的数据传送,但
    仍要接收来自服务器的数据。使用两个T C P连接也可作为一个选择,但使用半关闭的单连接更好。

  • 相关阅读:
    mysql 添加权限和撤销权限的实例(亲测可行)
    svn-经常遇到问题解答办法积累(一)
    一个命令查看mysql的所有配置(原创)
    IOC容器Unity的使用及独立配置文件Unity.Config
    JS如何封装一些列方法为一个对象的操作,然后集中管理这些操作,方便修改和调用
    VSS 的修复和扫描
    js正则获取图片的src属性及正则分割一个字符串
    Mongodb 服务(windows环境下)因被强制关闭,导致服务不能启动的处理办法
    dir结果重定向到剪切板
    property配置
  • 原文地址:https://www.cnblogs.com/momenglin/p/11318203.html
Copyright © 2011-2022 走看看