| 发表于:2007-04-15 21:22:16 楼主 |
想做一个一对一聊天的程序,程序可以在聊天时也能发送文件,还能进行语音和视频,但是有几个问题不太明白。 一)以前我做过单一的聊天程序,用winsokcet实现,感觉很简单。比如我要发送一 句“你好!”给对方,直接用send函数就可以传送过去,send函数原形:send(socket s,const char far *buf, int len,int flags);在这里,我只要把字符串付给第二个参数buf就行了!而我现在要传送的是一个文件,比如说一个电影文件,怎么传?这可是个电影文件,又不是字符串如“你好!”一样,总不能直接把它付给buf参数传过去吧。 二)如果我在程序里面创建了一个sock,并bind定一个ip主机地址,现在我用这个sock进行聊天时的数据发送和接收,可在这个时候,我又要传送文件了,这两者要并行进行,那怎么办?难道这个sock可以同进行聊天时的数据发送与接收又同时进行文件的接收或发送吗?根据我的理解应该不可能,因为我想如果同一个sock它可能没法区别到里是电影文件还是聊天的数据文件接收到了。如果这样的话,那么我们就创建两个sock,可是问题又来了,因为两个sock是不能同时邦定到同一个ip地址的。如果这样,那我怎么样处理sock才能同时进行聊天和文件传送呢! 三)我刚刚在网上查了一下有关文件传送的资料,但是不多,有网友说比如传送电影这样的大文件,必需把文件分开来传送,而不能一次性就把它传送过去?为什么不能一次性传过去呢?如果要分开来传,在接收端又怎么样组合起来呢,如果分开传的话,我们应该选择tcp的sock来做,还是应该用udp来做,两者做得话会有什么区别? 希望高手们能给我上面三个问题给点建议,(如果你能解答其中一个那也请帮忙解答)最后再能给一个整体性的建议和指导思想,怎么样完成一样聊天,文件传送或语音视频同步进行的程序?谢谢! |
|
|
|
|