我需要测试一条数据的发送和返回,运行程序得到的数据是不正常的,我就想调试看看哪里出了问题,可一旦我调试,却一切都正常发送和返回。白思不得其解!~~~

解决方案 »

  1.   

    支持楼上的说法。
    如果用的是SOCKET,要考虑一下,是不是两个数据包在一起发送了,而接收端又当做一个包处理了。
      

  2.   

    BOOL CTCPSocket::NewConnect(int sn)
    {
    m_nConnections++;
    Sleep(100)  ;
            LPCTSTR  data="68 05 05 68 4A 00 00 00 00 4A 16"  ; 
      CString newdata=BinToChar(data);
    int sendlen=SendServer(sn,(BYTE *)LPCTSTR(newdata),newdata.GetLength());
    return TRUE;
    }按大家所说的,我在函数里加了个sleep(100),全部都正常了,但还是不太明白这里为什么要sleep一下。究竟为何呢?
      

  3.   

    sleep
    顾名思义,就是睡一会,
    然后重新去抢时间片,如果你这边一直不放,那么接收端可能就没cpu资源处理了
    调试的时候由于有断点,所以就会有多余的资源来给接收端
      

  4.   

    如果发送速度过快,有些报文就会堵塞在那,如果你又没有正确处理,必然导致问题
    看看这个:http://blog.vckbase.com/arong/archive/2010/01/03/40672.html