我在用MSCOMM写一个控制内置MODEM发送数据的东东,拨号、接收已经OK,
但在发送时确出现了一个问题困扰,双方已经握手成功结束。
为什么现在我给对方MODEM发送数据(文件头信息6字节)而对方的MODEM并没有收到数据,
程序我是这样写的
一部分是数据入的部分,另一部分为数据出的部分
入的部分再收到对方文件头信息后会将文件信息显示在接收方机器上,但现在关键是接收方收不到信息。
请作过MODEM编程方面的大侠们,伸出高手,帮小弟一把,谢谢!!!初始化AT指令为"ATE0N0H0V0Q1S0=1"
************************SendBut()//发送方
{
SetLineIO( IO_OUTGOING );
dialstr.Format("ATDT%s",m_ModemDn);
ATCommand(dialstr);//向MODEM发送AT指令呼叫对方
}OnComm()
{
switch( m_comm.GetCommEvent() )
{
case comEvReceive:
      ProcesscomEvReceive(  );//接收事件?????
      break;
case comEvCD: // Change in Carrier Detect line. 
      KillTimer( m_Lines.m_MonitorTimerID );
      if ( m_comm.GetCDHolding( ) )//对方有载波
{
m_Lines.ShowLineMsg( "调制解调器握手结束" );if ( m_Lines.GetLineIO( ) == IO_INCOMING )
{
m_Lines.m_MonitorTimerID = SetTimer( 10 + LineNum, 10000, NULL );
m_Lines.SetLineState( LS_WAITCMD );//待命
m_Lines.m_reccmdidx = 0;
}
if ( m_Lines.GetLineIO( ) == IO_OUTGOING && m_Lines.GetLineState() == LS_OUTWAITCD )
{
m_Lines.m_ptask->m_taskprogress = TP_CONNECT;
SendFileStart();//发送文件-----------
}
      }
}}SendFileStart()
{
    if ( m_Lines.m_fo.Open( "super.dat", CFile::modeRead ¦ CFile::typeBinary ¦ CFile::shareDenyNone ) )
      {
fl = m_Lines.m_fo.GetLength( );
m_Lines.m_fo.Close( );
m_Lines.m_sndcmd[0] = TC_UPDATE;
m_Lines.m_sndcmd[1] = '0';
m_Lines.m_sndcmd[2] = ( unsigned char ) ( ( fl >> 24 ) & 0x000000ff );
m_Lines.m_sndcmd[3] = ( unsigned char ) ( ( fl >> 16 ) & 0x000000ff );
m_Lines.m_sndcmd[4] = ( unsigned char ) ( ( fl >> 8 ) & 0x000000ff );
m_Lines.m_sndcmd[5] = ( unsigned char ) ( fl & 0x000000ff );
m_Lines.SetLineState( LS_WAITECO );
m_Lines.m_reccmdidx = 0;
m_Lines.SendBuffer( m_Lines[LineNum].m_sndcmd, 6 );//--------------执行发送后为什么对方接收事件不响应???
    }
}ProcesscomEvReceive()//处理接收事件
{
if ( m_comm.GetCDHolding( ) )

              switch(m_Lines.GetLineState())   
{
case LS_WAITECO:
                .....//不执行
..... 
}
}
}
}