C#实现Tcp传输有必要用到完成端口么?
C#实现Tcp传输有必要用到完成端口么,目前我是用的socket异步收发 beginReceive后把数据放到队列中, 每个socket有一个队列存储数据,因为有粘包问题,所以只有1个线程处理数据,把数据处理成为完整的数据包后,再丢到另外一个队列,供多个线程去处理数据包。
看了一下完成端口的原理,是把socket绑定到完成端口,收到的数据都存放在完成端口的一个队列中,然后线程池中的空闲线程去队列中取数据进行处理。但是没想明白这样如何处理粘包问题。
不知道我的理解有没有问题,希望有经验的同行能给些指点!