多个数据流并发的socket应该如何设计

多个数据流并发的socket应该怎么设计?
考虑到服务器的性能,并发的socket连接不能太多,因此一般来说一个客户端只允许建立一个socket连接,但是现在一个客户端要同时传输多个流(比如同时传输 音频流+视频流+文字流+文件),现在有两个方案:

1.只用一个socket通道,四个流的数据分块依次传输,每个块都做好标记指明这块数据是属于哪个流的,然后在服务端拼接组合
2.建立4个socket连接,同时传输4个数据流

哪个方案好呢?
------解决思路----------------------
第一个方案比较好,现在有很多socket通讯都是采用这种拼接的方式,而且能保证4个流的整体性,实时性和一致性,拼接和拆包处理一下就可以了。
------解决思路----------------------
4个连接好

TCP已经做了包顺序管理,一个连接中里传输4个需要自己进行包管理,自己写的不如TCP的稳定。
异步NIO的使用,使服务器支持的连接数量增加到很大,