精华内容
下载资源
问答
  • socket同步异步通信

    2011-01-30 14:08:08
    利用socket进行简单的同步异步通信示例
  • socket同步异步通信.rar

    2019-12-17 19:02:21
    c# socket 同步异步通信
  • 文章目录一、串口通信二、异步通信三、同步通信四、串行通信的传输方向 一、串口通信 1、随着多微机系统的广泛应用和计算机网络技术的普及,计算机的通信功能愈来愈显得重要。计算机通信是指计算机与外部设备或...

    一、串口通信

    1、随着多微机系统的广泛应用和计算机网络技术的普及,计算机的通信功能愈来愈显得重要。计算机通信是指计算机与外部设备或计算机与计算机之间的信息交换。

    2、通信有并行通信和串行通信两种方式。在多微机系统以及现代测控系统中信息的交换多采用串行通信方式。
    计算机通信是将计算机技术和通信技术的相结合,完成计算机与外部设备或计算机与计算机之间的信息交换。

    3、可以分为两大类:并行通信与串行通信。

    4、并行通信
    通常是将数据字节的各位用多条数据线同时进行传送。并行通信控制简单、传输速度快,由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难。
    01

    5、串行通信
    串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送。
    串行通信的特点:传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂。
    02

    二、异步通信

    1、异步通信
    异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。
    03

    2、异步通信的数据格式
    03

    (1)SYN:同步字符(Synchronouscharacter),每帧可加1个(单同步)或2个(双同步)同步字符。

    (2)SOH:标题开始(Start of Header)。

    (3)标题:Header,包含源地址(发送方地址)、目的地址(接收方地址)、路由指示。

    (4)STX:正文开始(Start of Text)。

    (5)数据块:正文(Text),由多个字符组成。

    (6)ETB:块传输结束(End of TransmissionBlock),标识本数据块结束。

    (7)ETX:全文结束(End of Text ),全文分为若干块传输。

    (8)校验块:对从SOH 开始,直到ETB/ETX 字段的检验码。

    3、异步通信原理
    异步通信是以字符(构成的帧)为单位进行传输,字符与字符之间的间隙(时间间隔)是任意的,但每个字符中的各位是以固定的时间传送的,即字符之间不一定有“位间隔”的整数倍的关系,但同一字符内的各位之间的距离均为“位间隔”的整数倍。

    4、异步通信的特点
    本要求收发双方时钟的严格一致,实现容易,设备开销较小,但每个字符要附加2~3位用于起止位,各帧之间还有间隔,因此传输效率不高。

    三、同步通信

    1、同步通信
    同步通信(由一个时钟控制,用得很少,单片机是异步通信)
    04

    2、同步通信的优势
    同步通信时要建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步。此时,传输数据的位之间的距离均为“位间隔”的整数倍,同时传送的字符间不留间隙,即保持位同步关系,也保持字符同步关系。发送方对接收方的同步可以通过两种方法实现。

    四、串行通信的传输方向

    1、单工
    单工是指数据传输仅能沿一个方向,不能实现反向传输。

    2、半双工
    半双工是指数据传输可以沿两个方向,但需要分时进行。

    3、全双工
    全双工是指数据可以同时进行双向传输
    05

    4、信号的调制与解调
    利用调制器(Modulator):把数字信号转换成模拟信号,然后送到通信线路上去,再由解调器(Demodulator)把从通信线路上收到的模拟信号转换成数字信号。由于通信是双向的,调制器和解调器合并在一个装置中,这就是调制解调器MODEM。

    5、80C51的串行口结构
    06

    展开全文
  • 异步通信 在异步通信中,CPU与外设之间有两项约定: (1)字符格式---字符的编码形式及规定,每个串行字符由以下四个部分组成: ⑴ 1个起始位,低电平; ⑵ 5--8个数据位; ⑶ 1个奇偶校验位; ⑷ 1--2个...

    一、硬件层次上的同步与异步
    1.异步通信
       在异步通信中,CPU与外设之间有两项约定:
       (1)字符格式---字符的编码形式及规定,每个串行字符由以下四个部分组成:
          ⑴ 1个起始位,低电平;
          ⑵ 5--8个数据位;
          ⑶ 1个奇偶校验位;
          ⑷ 1--2个终止位(停止位)高电平; 
       (2)波特率
        波特率是指单位时间内传送二进制数据的位数,以位/秒位单位,它是衡量串行数据传送速度快慢的重要标志和参数。
        例如:假如数据出送速率是120位/秒,则传送的波特率为:120波特。
        注意:异步通信的传送速度一般在50波特-----19200波特之间。
    2.同步通信
       在异步通信中,每个字符要用起始位和终止位作为字符开始和结束的标志,占用了一些时间,为了提高数据块的传送速度,就要设法去掉这些标志,就采用同步通信。
       同步通信的速度可达500千波特。但是它的硬件电路比较复杂。

    3.优缺点比较
    1)异步通信简单,双方时钟可允许一定误差。同步通信较复杂,双方时钟的允许误差较小。
    2)通信效率:异步通信低,同步通信高。
    3)同步通信取消了每个字节的同步位,从而使数据位在传送为中所占比率增大,提高了传送效率。
    4)同步通信容许用户传送没有意义的二进制数据,即在没有信息要传输时,要填上空字符,因为同步传输不允许有间隙。

    二、软件层次的同步与异步
    1.同步通信:
    一般使用单线程,读操作和写操作都在同一个线程里面,读操作时不会写,写操作时不会读,此时硬件处于半双工模式。

    2.异步通信
    一般使用多线程,读操作和写操作在不同的线程里面,读操作和写操作同时进行,当读或写完成时使用事件通知,此时硬件处于全双工模式。
    用异步方式操作串口必须要定义 OVERLAPPED 结构,其中的 hEvent 必须自己建立,要定义两个 OVERLAPPED 结构,一个用于读一个用于写,当然也必须建立两个 Event,把它们放入 OVERLAPPED.hEvent。
    一般我们是在主线程中写数据,因为写是我们可以控制的,而读的时候我们不知道数据什么时候会到,所以要建立一个线程专门用来读数据,在这个线程中,我们循环地用 ReadFile 读串口,同时用 WaitCommEvent 检测线路状态。
    例如:Socket的同步模式和异步模式

    如果应用程序在执行期间只需要一个线程,请使用下面的方法,这些方法适用于同步操作模式。

    • 如果当前使用的是面向连接的协议(如 TCP),则服务器可以使用 Listen 方法侦听连接。Accept 方法处理任何传入的连接请求,并返回可用于与远程主机进行数据通信的 Socket。可以使用此返回的 Socket 来调用 SendReceive 方法。如果要指定本地 IP 地址和端口号,请在调用 Listen 方法之前先调用 Bind 方法。如果您希望基础服务提供程序为您分配可用端口,请使用端口号 0。如果希望连接到侦听主机,请调用 Connect 方法。若要进行数据通信,请调用 SendReceive 方法。

    • 如果当前使用的是无连接协议(如 UDP),则根本不需要侦听连接。调用 ReceiveFrom 方法可接受任何传入的数据报。使用 SendTo 方法可将数据报发送到远程主机。

          若要在执行过程中使用单独的线程处理通信,请使用下面的方法,这些方法适用于异步操作模式。

    三、软件层次的阻塞和非阻塞模式
    1.阻塞模式:
        阻塞模式执行I/O操作完成前会一直进行等待,不会将控制权交给程序,一般可以设置一个超时结构,超时时间到则返回超时,可以通过多线程技术进行处理。

    2.非阻塞模式
        非阻塞模式执行I/O操作后会立即返回,而不管读写有没有成功,一般在进行I/O操作前可以通过一些异步模型(如socket通信里面的select模型)来查询通信口的当前状态是否可读或可写。

    展开全文
  • Socket嵌套字同步异步通信的原理

    千次阅读 2012-02-15 10:40:44
    套接字简介: 套接字最早是Unix的,window是借鉴过来的。TCP/IP协议族提供三种套接字:流式、数据报式、原始套接字。...打开通信通道,告诉本地机器,愿意在该通道上接受客户请求——监听,等待客户请求
      
    

    套接字简介:

    套接字最早是Unix的,window是借鉴过来的。TCP/IP协议族提供三种套接字:流式、数据报式、原始套接字。其中原始套接字允许对底层协议直接访问,一般用于检验

    新协议或者新设备问题,很少使用。

    套接字编程原理:延续文件作用思想,打开-读写-关闭的模式。

    C/S编程模式如下:

    Ø  服务器端:

    打开通信通道,告诉本地机器,愿意在该通道上接受客户请求——监听,等待客户请求——接受请求,创建专用链接进行读写——处理完毕,关闭专用链接——关闭通信通道(当然其中监听到关闭专用链接可以重复循环)

    Ø  客户端:打开通信通道,连接服务器——数据交互——关闭信道。

    Socket通信方式:

    Ø  同步:客户端在发送请求之后必须等到服务器回应之后才可以发送下一条请求。串行运行

    Ø  异步:客户端请求之后,不必等到服务器回应之后就可以发送下一条请求。并行运行

    套接字模式:

    Ø  阻塞:执行此套接字调用时,所有调用函数只有在得到返回结果之后才会返回。在调用结果返回之前,当前进程会被挂起。即此套接字一直被阻塞在网络调用上。

    Ø  非阻塞:执行此套接字调用时,调用函数即使得不到得到返回结果也会返回。

    套接字工作步骤:

    Ø  服务器监听:监听时服务器端套接字并不定位具体客户端套接字,而是处于等待链接的状态,实时监控网络状态

    Ø  客户端链接:客户端发出链接请求,要连接的目标是服务器端的套接字。为此客户端套接字必须描述服务器端套接字的服务器地址与端口号。

    Ø  链接确认:是指服务器端套接字监听到客户端套接字的链接请求时,它响应客户端链接请求,建立一个新的线程,把服务器端套接字的描述发送给客户端,一旦客户端确认此描述,则链接建立好。而服务器端的套接字继续处于监听状态,继续接受其他客户端套接字请求。

    TCP/IP网络中,IP网络交互分类两大类:面向连接的交互与面向无连接的交互。

     

    Socket构造函数:

    public socket(AddressFamily 寻址类型, SocketType 套接字类型, ProtocolType 协议类型)。但需要注意的是套接字类型与协议类型并不是可以随便组合。

     

    SocketType

    ProtocolType

    描述

    Stream

    Tcp

    面向连接

    Dgram

    Udp

    面向无连接

    Raw

    Icmp

    网际消息控制

    Raw

    Raw

    基础传输协议

    Socket类的公共属性:

    属性名

    描述

    AddressFamily

    获取Socket的地址族

    Available

    获取已经从网络接收且可供读取的数据量

    Blocking

    获取或设置一个值,只是socket是否处于阻塞模式

    Connected

    获取一个值,指示当前连接状态

    Handle

    获取socket的操作系统句柄

    LocalEndPoint

    获取本地终端EndPoint

    RemoteEndPoint

    获取远程终端EndPoint

    ProtocolType

    获取协议类型

    SocketType

    获取SocketType类型

    Socket常用方法:

    Bind(EndPoint)

    服务器端套接字需要绑定到特定的终端,客户端也可以先绑定再请求连接

    Listen(int)

    监听端口,其中parameters表示最大监听数

    Accept()

    接受客户端链接,并返回一个新的链接,用于处理同客户端的通信问题

     

    Send()

    发送数据

    Send(byte[])

    简单发送数据

    Send(byte[],SocketFlag)

    使用指定的SocketFlag发送数据

    Send(byte[], int, SocketFlag)

    使用指定的SocketFlag发送指定长度数据

    Send(byte[], int, int, SocketFlag)

    使用指定的SocketFlag,将指定字节数的数据发送到已连接的socket(从指定偏移量开始)

    Receive()

    接受数据

    Receive(byte[])

    简单接受数据

    Receive (byte[],SocketFlag)

    使用指定的SocketFlag接受数据

    Receive (byte[], int, SocketFlag)

    使用指定的SocketFlag接受指定长度数据

    Receive (byte[], int, int, SocketFlag)

    使用指定的SocketFlag,从绑定的套接字接收指定字节数的数据,并存到指定偏移量位置的缓冲区

     

    Connect(EndPoint)

    连接远程服务器

    ShutDown(SocketShutDown)

    禁用套接字,其中SocketShutDown为枚举,Send禁止发送,Receive为禁止接受,Both为两者都禁止

    Close()

    关闭套接字,释放资源

    异步通信方法:

    BeginAccept(AsynscCallBack,object)

    开始一个一步操作接受一个连接尝试。参数:一个委托。一个对象。对象包含此请求的状态信息。其中回调方法中必须使用EndAccept方法。应用程序调用BegineAccept方法后,系统会使用单独的线程执行指定的回调方法并在EndAccept上一直处于阻塞状态,直至监测到挂起的链接。EndAccept会返回新的socket对象。供你来同远程主机数据交互。不能使用返回的这个socket接受队列中的任何附加连接。调用BeginAccept当希望原始线程阻塞的时候,请调用WaitHandle.WaitOne方法。当需要原始线程继续执行时请在回调方法中使用ManualResetEventset方法

    BeginConnect(EndPoint, AsyncCallBack, Object)

    回调方法中必须使用EndConnect()方法。Object中存储了连接的详细信息。

    BeginSend(byte[], SocketFlag, AsyncCallBack, Object)

     

    BegineReceive(byte[], SocketFlag, AsyncCallBack, Object)

     

    BegineDisconnect(bool, AsyncCallBack, Object)

     

     

    展开全文
  • 同步通信和异步通信

    万次阅读 2018-09-02 09:53:14
    异步通信时不要求接收端时钟和发送端时钟同步,发送端发送完一个字节后,可经过任意长的时间间隔再发送下一个字节。 同步通信效率高;异步通信效率较低。 同步通信较复杂,双方时钟的允许误差较小;异步通信简单,...

    首先是两者的不同

    • 同步通信要求接收端时钟频率和发送端时钟频率一致,发送端发送连续的比特流;异步通信时不要求接收端时钟和发送端时钟同步,发送端发送完一个字节后,可经过任意长的时间间隔再发送下一个字节。
    • 同步通信效率高;异步通信效率较低。
    • 同步通信较复杂,双方时钟的允许误差较小;异步通信简单,双方时钟可允许一定误差。
    • 同步通信可用于点对多点;异步通信只适用于点对点。

    异步通信

    异步通信中的接收方并不知道数据什么时候会到达,收发双方可以有各自自己的时钟。发送方发送的时间间隔可以不均,接收方是在数据的起始位和停止位的帮助下实现信息同步的。这种传输通常是很小的分组,比如一个字符为一组,为这个组配备起始位和结束位。所以这种传输方式的效率是比较低的,毕竟额外加入了很多的辅助位作为负载,常用在低速的传输中。

    以RS232协议规定为例,异步通信一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时,总是以“起始位”开始(低电平,逻辑值0),以“停止位”结束,字符之间没有固定的时间间隔要求。字符数据本身由5~8位数据位组成,接着字符后面是一位校验位(也可以没有校验位),最后是一位或一位半或二位停止位,停止位后面是不定长的空闲位。停止位和空闲位都规定为高电平(逻辑值1),这样就保证起始位开始处一定有一个下跳沿,

    举个例子,我们的键盘按下一个按键,发出一个字符信号,异步传输机制就会为它加上前后的辅助同步信息,帮助接收方识别到我们按下了哪一个按键。因为我们敲击键盘的节奏不固定,所以异步是一种很适合的方式

    同步通信

    同步通信中双方使用频率一致的时钟 ,它的分组相比异步则大得多,称为一个数据帧,通过独特的bit串作为启停标识。发送方要以固定的节奏去发送数据,而接收方要时刻做好接收数据的准备,识别到前导码后马上要开始接收数据了。同步这种方式中因为分组很大,很长一段数据才会有额外的辅助位负载,所以效率更高,更加适合对速度要求高的传输,当然这种通信对时序的要求也更高。
    同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息,由同步字符、数据字符和校验字符(CRC)组成。

    展开全文
  • 比易语言自带的更加完善的支持库。支持同步异步通信。带TCP,UDP组件。
  • 其中我们分析同步/异步通信最重要的不同点就是是否同步时钟,可能就有很多小伙伴不理解,异步通信不是一字节一个字节的发送嘛?既然不同步时钟,那为什么要设置比特率?其实这是一个误导性的问题。且听我细细道来, ...
  • Socket同步异步通信,都是用C#语言编写,并且在同一个Winform项目文件下,同步异步通信,都包含server和client。
  • 数据通信可分为同步通信和异步通信两大类:  同步通信要求接收端时钟频率和发送端时钟频率一致。发送端发送连续的比特流。  异步通信时不要求接收端时钟和发送端时钟同步。发送端发送完一个字节后,可经过任意长...
  • 同步通信和异步通信区别

    万次阅读 2020-08-27 21:57:32
    同步通信与异步通信区别: 1.同步通信要求接收端时钟频率和发送端时钟频率一致,发送端发送连续的比特流;异步通信时不要求接收端时钟和发送端时钟同步,发送端发送完一个字节后,可经过任意长的时间间隔再发送下一...
  • 同步通信与异步通信

    2019-03-07 00:11:48
    同步通信与异步通信区别: 同步通信要求接收端时钟频率和发送端时钟频率一致,发送端发送连续的比特流;异步通信时不要求接收端时钟和发送端时钟同步,发送端发送完一个字节后,可经过任意长的时间间隔再发送下一...
  • 工程说明:USART1-同步异步串行通信.docx。
  • 异步通信同步通信

    2013-12-08 16:51:46
    异步通信同步通信,主要讲解RS232与单片机等进行通信!有组于大家理解!
  • 同步异步串口通信代码,学习串口的好程序。
  • 异步通信同步通信

    2016-04-28 19:20:59
    异步通信异步通信”是一种很常用的通信方式。异步通信在发送字符时,所发送的字符之间的时间间隔可以是任意的。当然,接收端必须时刻做好接收的准备(如果接收端主机的电源都没有加上,那么发送端发送字符就没有...
  • 在计算机系统中,CPU和外部通信有两种通信方式:并行通信和串行通信。并行通信,即数据的各位同时传送;串行通信,即数据一位一位顺序传送。
  • 同步通信和异步通信的区别

    千次阅读 2018-11-21 08:20:10
    这里的信息帧与异步通信中的字符帧不同,通常含有若干个数据字符。 采用同步通信时,将许多字符组成一个信息组,这样,字符可以一个接一个地传输,但是,在每组信息(通常称为帧)的开始要加上同步字符,在没有信息...
  • 同步通信 VS 异步通信

    万次阅读 2013-08-29 11:51:59
    在描述同步通信与异步通信之前,我们先得搞清串行通信的内涵。串行通信是指计算机主机与外设之间,以及主机系统与主机系统之间数据的串行传输。使用串口进行数据传输时,发送和接收的每一个字符实际上都是一次一位的...
  • 同步通信
  • 通俗理解同步通信与异步通信

    万次阅读 多人点赞 2017-03-29 16:35:21
    网络上对同步传输与异步传输的文章一大把,各种图示解说也很多,但看完终归有点一头雾水,本文通俗的来说说这两种通信方式。
  • 同步异步通信

    千次阅读 2019-04-07 14:59:14
    在串行通信中,可以分为两种类型,一种叫同步通信,另一种叫异步通信。 1.同步通信 (1)同步通信要求双方共用一个的时钟,总线上按照统一的时序和周期完成信息传输。 (2)同步通信将许多字符组成一个信息组,这个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 181,380
精华内容 72,552
关键字:

同步异步通信