91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 3KB
    文件類(lèi)型: .zip
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-05-09
  • 語(yǔ)言: C#
  • 標(biāo)簽: C#??XModem??

資源簡(jiǎn)介

Xmodem 協(xié)議傳輸由接收程序和發(fā)送程序完成。先由接收程序發(fā)送協(xié)商字符,協(xié)商校驗(yàn)方式,協(xié)商通過(guò)之后發(fā)送程序就開(kāi)始發(fā)送數(shù)據(jù)包,接收程序接收到完整的一個(gè)數(shù)據(jù)包之后, 按照協(xié)商的方式對(duì)數(shù)據(jù)包進(jìn)行校驗(yàn)。校驗(yàn)通過(guò)之后發(fā)送確認(rèn)字符,然后發(fā)送程序繼續(xù)發(fā)送下一包;如果校驗(yàn)失敗,則發(fā)送否認(rèn)字符,發(fā)送程序重傳此數(shù)據(jù)包。 Xmodem協(xié)議是由Ward Chritensen于70年代提出并實(shí)現(xiàn)的,傳輸數(shù)據(jù)單位為信息包。 Xmodem 協(xié)議一般支持128 字節(jié)的數(shù)據(jù)包,并且支持校驗(yàn)和、CRC 兩種校驗(yàn)方式。 參考: https://blog.csdn.net/qq61394323/article/details/77324156 https://blog.csdn.net/m0_37756916/article/details/76064727

資源截圖

代碼片段和文件信息

using?System;
using?System.Collections.Generic;
using?System.Linq;
using?System.Text;
using?System.Threading;

namespace?RUDPSLib.XModem1
{
????//Version?1.3

????//This?class?is?tested?to?be?100%?compatibel?to?Microsoft(r)?Hyperterminal?5.1

????//XmodemTransmit:?supports?both?CRC?and?checksum
????//XModemReceive:?only?supports?checksum

????//Feel?free?to?use/modify/copy/distribute?this?file
????public?class?XModem
????{
????????#region?Events

????????private?System.EventHandler?PacketReceivedEvent;
????????public?event?System.EventHandler?PacketReceived
????????{
????????????add
????????????{
????????????????PacketReceivedEvent?=?(System.EventHandler)System.Delegate.Combine(PacketReceivedEvent?value);
????????????}
????????????remove
????????????{
????????????????PacketReceivedEvent?=?(System.EventHandler)System.Delegate.Remove(PacketReceivedEvent?value);
????????????}
????????}

????????public?delegate?void?PacketSentEventHandler(int?TXStringSize);
????????private?PacketSentEventHandler?PacketSentEvent;

????????public?event?PacketSentEventHandler?PacketSent
????????{
????????????add
????????????{
????????????????PacketSentEvent?=?(PacketSentEventHandler)System.Delegate.Combine(PacketSentEvent?value);
????????????}
????????????remove
????????????{
????????????????PacketSentEvent?=?(PacketSentEventHandler)System.Delegate.Remove(PacketSentEvent?value);
????????????}
????????}


????????#endregion

????????#region?Members

????????private?System.IO.Ports.SerialPort?port?=?null;

????????private?byte?SOH?=?(byte)(0x01);
????????//header?for?128byte-packets
????????private?byte?STX?=?(byte)(0x02);
????????//header?for?1024byte-packets
????????private?byte?EOT?=?(byte)(0x04);
????????//end?of?transmission
????????private?byte?ACK?=?(byte)(0x06);
????????//acknowledge
????????private?byte?NAK?=?(byte)(0x15);
????????//negativ?acknowledge
????????private?byte?CAN?=?(byte)(0x18);
????????///?
????????///?cancel?transfer
????????///?

????????private?byte?CTRLZ?=?(byte)(0x1A);
????????//padding?char?to?fill?data?blocks?????????private?byte?C_pad?=?(byte)(0x43);

????????//start?of?a?CRC?request
????????private?ushort?MAXRETRANS?=?System.Convert.ToUInt16(25);

????????//1024?for?XModem?1k?+?3?head?chars?+?2?crc?+?nul
????????private?byte[]?xbuff?=?new?byte[1029];

????????private?int?bufsz;
????????private?int?crc?=?1;
????????private?byte?packetno?=?(byte)1;
????????private?int?i;
????????private?int?c;
????????private?int?len?=?0;
????????private?int?retry;

????????#endregion

????????#region?Constructor

????????public?XModem(System.IO.Ports.SerialPort?port)
????????{
????????????if?(!port.IsOpen)
????????????????port.Open();
????????????this.port?=?port;
????????}

????????#endregion

????????#region?Implementation

????????#region?XModemReceive

????????//
????????//receive?byte?Array?via?XModem?using?either

?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件???????16017??2018-07-05?14:27??XModem.cs

評(píng)論

共有 條評(píng)論