谁用过NKD,我用它做C/S时,在传送大数据(16K)时,S端不响应!但我如果打断点来查看的话,就可以接收.请各位大侠帮助我一下!不知道各位在传送大数据时是怎么做的,另,是不是还需进行什么别的设置!!

解决方案 »

  1.   

    http://www.codeproject.com/internet/ndk.asp
      

  2.   

    用增大缓存的方法是否能解决此问题?若能,怎样才能增大缓存?有相应的api函数吗?
    sleep(500)对实时性有影响,因为大数据并不是很多,传输较多还是小数据,每次都sleep(500),可能会导致其他命令得不到响应。
      

  3.   

    http://www.vczx.com/article/show.php?id=790你用它试一下,看死不死的了。
      

  4.   

    sleep()越用越糟!
    你出现的问题我肯定是server()没接收完成,你便处理了数据,而所需要的
    数据不能满足处理需求,server报错!
    但你断点调试的时候,数据已经到达了(因为传输数据是有时间延时)的所以
    能运行,正确的方式增大内部缓存(用相关API)使内部缓存>16K
      

  5.   

    to:gdy119(中国制造) 
    我调试时,找到的原因是“无法立即完成一个非阻挡性套接字操作。”,问题出现在读数据时,当用使用CArchive& archive进行archive >> ;时,就会出现异常。
    请问,增大内部缓存(用相关API)使内部缓存>16K  中内部缓存是指何,能提供相关API吗,是setsockopt吗?能给一个简单的设置例子吗?
      

  6.   

    to:wwwllg(wwwllg) 
    我的客户端是放在wince上的,我不会在ce上注册这个,也就没测试,在pc-》pc上,发送16k是没问题的,而从ce-》pc时,16k就读不出来,
      

  7.   

    wince是unicode
    你要考虑这方面。原理都是一样。我那个控件,现在s端不支持unicode.
      

  8.   

    OK问题解决,通过增大缓存区来解决的,谢谢各位!!
    to:wwwllg(wwwllg) ( )
    unnicode不影响传输的,我发的时byte array 16k,接收时也是byte array,没问题
    如果是字符传,发的时候的确是双字节!