像QQ,MSN的同时传送多个文件,同时发消息中也有自定义图片文件需用要传输,大家说说思路!怎么达到多路并行,不会乱啊

解决方案 »

  1.   

    自己定义个协议,把数据包裹起来,数据包的头表明数据的类型,序号,crc等等。就可以区分开来了..........................
      

  2.   

    我个人觉得如果是像QQ这样的点对点传输的话,用不着多路并行。思路的话就是如果使用TCP协议的话就定义两个套接字链接,直接传输文件就好了。但如果楼主想用多路并行,也就是像电驴呀、BT呀之类的,接收方也许要向多个发送方接收文件,这时候可以考虑将接收文件分块,每个块分配一个DownLoader,然后把好几个DownLoader放在一个链表里轮询,每个DownLoader里放一个套接字,这时候的套接字用非阻塞,每个DownLoader运行相同的时间,数据没接收完就放入链表后继续轮询,接收完就去掉咯,这样在一定的程度上可以算是多路并行咯,这样就不会乱。
      

  3.   

    1.保存发送文件链表,Sender遍历所有发送文件,每次读一块发送出去,如果文件读完,从链表删除,
    遍历直至文件链表为空。Receiver接受一个文件快,写到相应的文件里去。应该也可以用多线程来做。
      

  4.   

    自己定义个协议,把数据包裹起来,数据包的头表明数据的类型,序号,crc等等。就可以区分开来了