我认为楼主的问题是出在用TCP方式上,因为TCP总是会验证数据是否正确,如果有丢失或数据错误,会让发送方重新发送,而发送方也总是在发送了数据包之后等待对方的回应,以至于导致网络数据的堵塞,而且当数据量大于网络实际流通能力的时候,肯定会造成网络堵塞,而且越来越慢,直到完全瘫痪掉。虽然你说你的Socket是非堵塞,但是只要是TCP,就总是会这样验证数据。
To hugiming:
传输视频流通常都是用UDP方式,即使数据量大于网络的实际流通能力,也只是丢掉一些数据包而不会造成网络瘫痪。另外,数组的申请大一些并没有什么坏处,反而会对某些故意破坏数据传输的企图有一定的预防能力。而且,用数组的方式没有什么不妥,同样可以用指针操作这段内存,如果你说的指针是动态分配的话,那么,运行效率将会比数组低很多。