异步的socket中是不是每一次send数据都相当于一个线程?如果是的话,我要发个大点的文件,用个循环一直send,这样做好不好?

解决方案 »

  1.   

    我以前做过发送大的文件的程序
    采用异步SOCKET,没有用循环,读取文件后,根据文件“指针”位置来判断有没有读完,如果没有,就再beginsend()
      

  2.   

    dazhu2同志
    你 “根据文件“指针”位置来判断有没有读完,如果没有,就再beginsend()”
    不就是一个循环吗?
      

  3.   

    send()是同步发送...beginsend()才是异步发送
      

  4.   

    send()是同步发送...使用的是一个线程 ..
    beginsend()才是异步发送..用的是线程池..
      

  5.   

    我的是异步socket来的的,是用beginsend()来的,
      

  6.   

    异步不一定是多个线程,这是两码事情。在windows中的Socket本来就有一种异步方式,一种是简单的消息同步,另外一种依靠事件,这都是Windows独有的。Socket规范本身也支持异步,最早的是select模型。具体实现的时候究竟有没有用多个线程,这真不好说。有时候可能只有2个线程罢了,毕竟BeginSend只能调用一次。