要写个程序.用串口发送文件但是..在下才疏学浅...无法写这个.请各位有识之士能否告知在下一二.

解决方案 »

  1.   

    也没数据发送格式吗?如果可以,最好按接收方可以接收的最大字节数来发。发送时可以先从文件中读数据,转为char[],发送就可以了吧!接收,只不过是一个反过程,要解析自己想要的数据。
      

  2.   

    1 首先你要知道串口通讯是如何传输的,你可以先尝试下发送几个字节的发送和接收2 至于文件,你会收发几个字节后,把文件转化为字节后传送就可以了3 文件传输设计多字节传输,你要制定自己的通讯报文协议   例如: EB为报头  97为报尾 中间加两个字节的长度位,一个字节校验位,这个就是简单的通讯协议         传输报文就是: EB +长度字节(1)+长度字节(2) + 你的自己数据 + 校验位 + 97
      
      这样你就可以知道你发送的时候,串口有没有把数据丢失,校验方法有多种,可以从长度自己开始求算术或者异或和,一直计算到校验位的前一位,校验位就是你前面的计算结果,接受的时候,也计算,如果校验为不一致,就是错误报文,要重发或者丢失什么的
      

  3.   

    刚开始串口通讯C# serialport的控件可以满足你的要求,不需要你写更多代码如果你熟悉后再自己扩展和其它方法也可以
      

  4.   

    [b]我这里有发送字符串的代码(自己写的)求教怎么改能发送文件
    private void button_send_Click(object sender, EventArgs e)
            {
                byte[[size=11px]
    ] send = Encoding.Unicode.GetBytes(textBox_send.Text);
                string str = Convert.ToBase64String(send);
                sp.WriteLine(str);
                MessageBox.Show("数据发送成功!");
            }        private void button_receive_Click(object sender, EventArgs e)
            {
                byte[] receive = Convert.FromBase64String(sp.ReadLine());
                textBox_receive.Text = Encoding.Unicode.GetString(receive);
                MessageBox.Show("数据接收成功!");
            }[/size][/b]
      

  5.   

    发非文件和发文本区别在于你要告诉接收发 你发的文件是什么类型的 就是文件的后缀名要发给对方,对方知道后缀名以后才晓得的发的是什么文件 是.exe还是.bmp 这样对方在组合接收数据后给文件加上同样的后缀 这样文件就可以使用了