用串口进行文件传输的问题、串口传输大文件

独步天涯2012 2016-05-01 05:35:59
关键字:用串口进行文件传输的问题、串口传输大文件等。
当要求隔离的两个网络之间需要经常性传输一些文件时,使用优盘拷贝费时费力;使用网闸,动辄花费数万至数十万元。
而此时使用“串口文件发送/接收系统”不失为很好的解决方案:串口文件发送/接收系统使用的是Zmodem文件传输协议,虽然速度不快,但不使用任何网络协议,比网闸的隔离通用网络协议功能要彻底。
串口文件发送/接收系统由发送端和接收端两部分组成:支持各类文件的发送,简单易操作。当采用485较远距离发送文件时,可以在发送框输入文本,将消息发送给另一端,达到沟通作用。
基于c# VS2010.net2.0编辑,简单易懂。
QQ:28876172;Email:sangboy1979@sohu.com
http://download.csdn.net/detail/sangboy2012/9483204

private void btn_openfile_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
dt = DateTime.Now;
fs = new FileStream(openFileDialog1.FileName, FileMode.Open, FileAccess.Read);
blockCount = (fs.Length - 1) / size + 1;
BaseInfo.FileCount = fs.Length;

List<byte> bList = new List<byte>();


#region //将字节流转换成标准16进制

#endregion

//byte[] sent = new byte[s.Length];
//serialPort.Write(sent, 0, sent.Length);
BaseInfo.fileName = openFileDialog1.FileName;
lab_fswkdx.Text = BaseInfo.FileCount.ToString(); //已将原来数据更换。
textBox1.Text = BaseInfo.fileName;
lab_Fszjs.Text = ""; //初始将前面留下的发送数据清零
txt_Set.Text = ""; //将前面发送过的数据,发送框数据清零。
txt_Ret.Text = "";
index = 0;

progressBar1.Value = 0;
progressBar1.Minimum = 0;
progressBar1.Maximum = int.Parse(BaseInfo.FileCount.ToString());

string fszj = (int)Protocol.Client端发送文件名 + " " + openFileDialog1.FileName;
string s = serialPort_xy.serialPort_xy.serialPort_js(fszj.ToString()); //端口校验


bList.AddRange(ASCIIEncoding.UTF8.GetBytes(s));
//bList.AddRange(ASCIIEncoding.UTF8.GetBytes(openFileDialog1.FileName));

serialPort.DiscardInBuffer();
serialPort.DiscardOutBuffer();

byte[] bArr = bList.ToArray();
serialPort.Write(bArr, 0, bArr.Length);
}
}
...全文
652 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧