zoukankan      html  css  js  c++  java
  • TCP同步与异步

      首先我简单介绍一下同步TCP编程 与异步TCP编程。

     1 (1)同步:在服务端我们通常用一个TcpListener来监听一个IP和端口。客户端来一个请求的连接,在服务端可以用同步的方式来接收,也可以用异步的方式去接收。比如:

    TcpListene server = new TcpListener(IPAddress.Parse("127.0.0.1"), port);

    TcpClient tc =server.AcceptTcpClient();

      这里就一个同步接收的方式,那为什么说同步呢,因为在这个端口下如果同是来了两个客户端请求,第一个连接得到响应,与服务端建立通讯,而第二个请求就会被一直阻塞直到第一个请求完成操作,各个请求之间就好像排个队,顺序执行,这就是同步。

     2 (2)异步呢,就是同时来两个或者多个请求,服务端就同时响应多个客户端,同时给他们连接。各个客户端与服务器的通讯是并行的,一个客户端不必等另一个客户端完成操作。通常用这两个方法来接收一个客户端请求。

    BeginAcceptTcpClient()

    EndAcceptTcpClient()

     3 (3)阻塞 调用是指调用结果返回之前,当前线程会被挂起。比如:Console.ReadLine(),如果你不向控制台输入数据,这个方法就会一直等待,知道你输入数据后才会向下执行。这个时候当前线程被挂起来了,让CPU去做其他事情。

     4 (4)非阻塞和阻塞的概念相对应,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。

  • 相关阅读:
    安装Bind到CentOS(YUM)
    安装Ansible到CentOS(YUM)
    安装AB到CentOS(YUM)
    安装APACHE到CentOS(YUM)
    07 Spring Cloud Eureka是什么?
    06 Spring Boot Starter的介绍及使用
    05 Spring Boot项目搭建步骤(超详细)
    04 Spring Cloud开发环境的准备和Lombok安装步骤
    03 Spring Cloud和Dubbo的区别及各自的优缺点
    02 Spring Cloud 模块介绍
  • 原文地址:https://www.cnblogs.com/wang7/p/2516808.html
Copyright © 2011-2022 走看看