zoukankan      html  css  js  c++  java
  • 网络编程实验2_(2)概念梳理

    一、流式套接字

      流式套接字依托传输控制协议,在TCP/IP协议簇中对应TCP,用于提供面向连接、可靠的数据传输服务,该服务将保证数据能够实现无差错、无重复发送,并按顺序接收。基于流的特点,使用流式套接字传输的数据形态是没有报文边界的有序数据流。

      流式套接字基于可靠的数据流传输服务,这种服务的特点是面向连接、可靠。面向连接的特点决定了流式套接字的传输代价大,且只适合于一对一的数据传输;而可靠的特点意味着上层应用程序在设计开发时不需要过多地考虑数据传输过程中的丢失、乱序、重复问题。总体来看,流式套接字适合于以下场合中选择使用:

    1)大数据量的数据传输应用

      流式套接字适合文件传输这类大数据量传输的应用,传输的内容可以是任意大的数据,其类型可以是ASCII文本也可以是二进制文件。在这种应用场景下,数据传输量大,对数据传输的可靠性要求比较高,且与数据传输的代价相比,连接维护的代价微乎其微。

    2)可靠性要求高的传输应用

      流式套接字适合应用在可靠性要求高的传输应用中,在这种情况下,可靠性是传输过程首先要满足的要求,如果应用程序选择使用UDP协议或其他不可靠的传输服务承载数据,那么为了避免数据丢失、乱序、重复等问题,程序员必须啊哟考虑以上诸多问题引起的应用程序的错误,由此带来复杂的编码代价。

    二、流式套接字的通信过程

    流式套接字的网络通信过程是在链接成功建立的基础上完成的。

    1、基于流式套接字的服务器进程的通信过程

    在通信过程中,服务器进程作为服务提供方,被动接收连接请求,决定接受或拒绝该请求,并在已建立好的连接上完成数据通信,其基本通信过程如下:

    1)Windows Sockets DLL初始化,协商版本号。

    2)创建套接字,指定使用TCP(可靠的传输服务)进行通信。

    3)指定本地地址和通信端口。

    4)等待客户端的连接请求。

    5)进行数据传输。

    6)关闭套接字。

    7)结束对Windows Sockets DLL的使用,释放资源。

    2、基于流式套接字的客户端进程的通信过程

    在通信过程中,客户端进程作为服务请求方,主动请求建立连接,等待服务器的连接确认,并在已建立好的连接上完成数据通信,其基本通信过程如下:

    1)Windows Sockets DLL初始化,协商版本号。

    2)创建套接字,指定使用TCP(可靠的传输服务)进行通信。

    3)指定服务器地址和通信端口。

    4)向服务器发送连接请求。

    5)进行数据传输。

    6)关闭套接字。

    7)结束对Windows Sockets DLL的使用,释放资源。

  • 相关阅读:
    003_&#x和ASCII的关系及URL中的中文转义
    001_机器学习的Hello world之MNIST手写数字识别模型
    Appnium安装-Mac平台
    Code Review 规范
    Spring AOP-xml配置
    JTLParser-linux上jmeter的jtl文件二次分析
    测试覆盖率Emma工具使用
    jmeter之java请求
    jmeter测试总结
    jstat监控gc情况
  • 原文地址:https://www.cnblogs.com/cyx-b/p/12446150.html
Copyright © 2011-2022 走看看