我要接受一个比较大的TCP数据包,我用的是SELECT方法,如果当有数据到来的时候select返回,可以接受,可是如果这个数据很大,不能够一次read完,那么我是紧接着就地一个次read呢,还是继续call select,等 下一次select返回?
谢谢

解决方案 »

  1.   

    干吗不用异步选择呢?
    或者用WSAEventSelect呢?
      

  2.   

    还用就是TCP通信不是随便传输一个无格式的数据包,无论该数据包是否定长,他都应该有一个通信标准!!
      

  3.   

    这是一个跨平台的程序,不能用WSAEventSelect。
      

  4.   

    >>那么我是紧接着就地一个次read呢,还是继续call select,等 下一次select返回?call select
      

  5.   

    那么就用异步选择WSAAsyncSelect吧!!!
    通过网络事件激发消息,然后再用消息响应函数处理套接字I/O操作,这样效率也挺高的!!
      

  6.   

    我认为都可以,read返回-1,证明没有数据再select
      

  7.   

    有了select还要WSAAsyncSelect干吗?
      

  8.   

    哦,知道啦,谢谢各位,我先测试一下看看,因为read会阻塞,所以还是接着用select