请问你们做的程序向一个SOCKET发送数据是在线程中发的,还是在线程外投递发送,如果在线程外投递发送,那新开的缓冲在哪里释放?

解决方案 »

  1.   

    一般是在线程中发送,但还要设计一些辅助的数据结构,然后从别的线程将要发送的数据放入,send线程从其中取出后,发送。
      

  2.   

    那SOCKET怎么知道这是他的数据?
      

  3.   

    你可以在发送的数据结构中带Ip和Port,你也必须维护一个Ip,Port,socket的数据结构,应该就可以了。
      

  4.   

    如果在线程中发送,在查GetQueuedCompletionStatus的时候就停在这里了,如果客户机没有发送数据,这怎么解决?
      

  5.   

    原来你指的是这个线程,我说的是再启一个线程专门发送。
    关于GetQueuedCompletionStatus的问题,你可以参考一下我的另两张贴子:
    http://community.csdn.net/Expert/TopicView3.asp?id=4369510
    http://community.csdn.net/Expert/TopicView3.asp?id=4370844
    看看是否有帮助。