界面大致已经做好 导入文件->发送文件
暂时只需要发送mp3文件 但是不知道具体怎么做 还有协议也没有 想最好能用zmodem协议 但是没有这些资料 望高人解救
能说一下串口文件发送原理 的 也给分

解决方案 »

  1.   

    一般来说有两种:  
      1、用MS的控件MSCOMM  
      2、用串行通信类Cserial    
      3、直接用Win32api函数  
      4、利用端口函数直接操作  
       
      1   MSComm控件的属性  
       
      CommPort:设置串口号,类型   short   :1-comm1   2-comm2.  
      Settings:设置串口通信参数,类型   CString   :B波特率,P奇偶性(N无校验,E偶校验,O奇校验),D字节有效位数,S停止位。  
      PortOpen:设置或返回串口状态,类型   BOOL:TURE打开,FALSE关闭。  
      InputMode:设置从接收缓冲区读取数据的格式,类型   long:   0-Text   1-Bin。  
      Input:从接收缓冲区读取数据,类型   VARIANT。  
      InBufferCount:接收缓冲区中的字节数,类型:short。  
      InBufferSize:接收缓冲区的大小,类型:short。  
      Output:向发送缓冲区写入数据,类型:VARIANT。  
      OutBufferCount:发送缓冲区中的字节数,类型:short。  
      OutBufferSize:发送缓冲区的大小,类型:short。  
      InputLen:设置或返回Input读出的字节数,类型:short。  
      CommEvent:串口事件,类型:short。  
       
      程序示例  
       
      串口初始化  
       
              if   (!m_comm.GetPortOpen())m_comm.SetPortOpen(TURE);           /*打开串口*/  
       
              m_comm.SetSettings("4800,n,8,1");       /*串口参数设置*/  
              m_comm.SetInputMode(0);                           /*设置TEXT缓冲区输入方式*/  
              m_comm.SetRthresHold(1);                         /*每接收一个字符则激发OnComm()事件*/  
       
      接收数据  
       
              m_comm.SetInputLen(1);                             /*每次读取一个字符  
              VARINAT   V1=m_comm.GetInput();  
       
      /*读入字符*/  
       
              m_V1=V1.bstrval;  
       
      发送字符  
              m_comm.SetOutput(Colevariant   ("Hello");   /*发送   “Hello”   */  
      2、Cserial   是由MuMega   Technologies公司提供的一个免费的VC++类,可方便地实现串行通信。  
       
      3、Windows   API通信函数方法  
       
      这个在msdn里面讲的很清楚标题:Communication   Reference  
       
      4、利用端口函数直接操作  
       
      这种方式主要是采用两个端口函数_inp(),   _outp()实现对串口的读写,其中读端口函数的原型为:  
       
              int   _inp(unsigned   shot   port)  
       
      该函数从端口读取一个字节,端口号为0~65535。  
       
      写端口的函数原型为:  
       
              int   _outp(unsigned   shot   port,   int   databyte)  
       
      该函数向指定端口写入一个字节。  
       
      不同的计算机串口地址可能不一样,通过向串口的控制及收发寄存器进行读写,可以实现灵活的串口通信功能,由于涉及具体的硬件电路讨论比较复杂   
      

  2.   

      http://expert.csdn.net/Expert/topic/1851/1851932.xml?temp=.9822657  
      http://expert.csdn.net/Expert/topic/1505/1505867.xml?temp=.2344019   
      

  3.   


    可以。用分层的方法可以简化问题。
    不管是使用 MSCOMM 控件,还是直接使用 Win32 API ,都是一种读写串行口的方法。它可以用来读写串行口,但读写的内容是由程序员自己确定的。
    你可以自己定义协议发送文件,也可以使用 zmodem协议 等别人定义好的协议。
    所以你需要解决 2 个问题:1、如何读写串行口(底层)2、使用什么协议(高层)