文件传输功能可以用服务器转发实现吗

yiluqingfeng 2009-09-16 08:22:40
我自己实现的一个简单的聊天软件,发送消息是服务器转发的方式,UDP协议。现在要将文件传输功能加上,打算仍然采用UDP协议的,可以仍然使用服务器转发的方式吗? 我用服务器转发的方式实现了一点,发现服务器端的转发比客户端的发送慢好多,总是客户端已经循环将数据包发送给服务器端完了之后,服务器端才开始慢慢悠悠的转发。是我的程序有问题还是不能试用服务器转发啊?
...全文
204 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
udknight 2009-09-20
  • 打赏
  • 举报
回复
文件传输都是点对点了吧,服务器再转发客户端一多估计就歇菜了
WinEggDrop 2009-09-20
  • 打赏
  • 举报
回复
[Quote=引用楼主 yiluqingfeng 的回复:]
我自己实现的一个简单的聊天软件,发送消息是服务器转发的方式,UDP协议。现在要将文件传输功能加上,打算仍然采用UDP协议的,可以仍然使用服务器转发的方式吗?  我用服务器转发的方式实现了一点,发现服务器端的转发比客户端的发送慢好多,总是客户端已经循环将数据包发送给服务器端完了之后,服务器端才开始慢慢悠悠的转发。是我的程序有问题还是不能试用服务器转发啊?
[/Quote]

转发慢这一点不奇怪,只要客户1到转发服务器速度不好或转发服务器到客户2速度慢,都会造成慢。但如果客户1到客户2慢,但客户1到转发服务器快,转发服务器到客户2也快,那么用转发就快。代理服务器就是一个可以理解为”数据转发服务器“,有时能加速,有时却减速,也是一个道理。
yiluqingfeng 2009-09-16
  • 打赏
  • 举报
回复
没有人能提供些建议吗?我实在是才疏学浅,这个问题困扰好几天了,希望知道的朋友们指点一下,分不够可以再加
yiluqingfeng 2009-09-16
  • 打赏
  • 举报
回复
怎样才能实现多个聊天窗口同时发送多个文件或接受多个文件?大家有什么好的建议?
dengxuxing 2009-09-16
  • 打赏
  • 举报
回复
文件传输功能不应该通过服务器转发的,服务器的压力会很大的,毕竟文件一般都不会很小的.
feiyangdn 2009-09-16
  • 打赏
  • 举报
回复
电子邮件系统应该就是这么做的,但是聊天软件双方在线没有必要这么做,直接传送不就完了,不要转发。
yiluqingfeng 2009-09-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 dirdirdir3 的回复:]
那是因为发送文件的处理占用的服务器的大部分资源,因此其他的客户端的其他请求就被放一边了。
其实转发基本不现实,没有任何实现价值,真要做的话建议可以从驱动入手...............

一般就算是QQ的话,自定义的表情都是点对点的,更加别说文件了.............
[/Quote]

哦,既然如此,看样只能用点对点了,谢谢大家的关注。还有一个问题,我现在只会实现简单的单线程发送,这边的客户端循环发送数据包,那边的客户端循环接受数据包,怎样才能实现多个聊天窗口同时发送多个文件呢
yiluqingfeng 2009-09-16
  • 打赏
  • 举报
回复
可是点对点发送要解决NAT穿越的问题,好麻烦的,而且我的通讯基类还要进行改变啊
dirdirdir3 2009-09-16
  • 打赏
  • 举报
回复
那是因为发送文件的处理占用的服务器的大部分资源,因此其他的客户端的其他请求就被放一边了。
其实转发基本不现实,没有任何实现价值,真要做的话建议可以从驱动入手...............

一般就算是QQ的话,自定义的表情都是点对点的,更加别说文件了.............
yiluqingfeng 2009-09-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lanlingmeijiu 的回复:]
还有就是服务器在处理转发数据包的过程中便不去处理客户端的其他请求了,这是什么原因?之前发送消息的时候无论消息发送多么频繁都可以并发处理的
[/Quote]
不好意思,上面四楼是我发的,刚有个同事换他的号码查看帖子来着,我忘了注销,用的他的号码回复的
贪玩的老鼠 2009-09-16
  • 打赏
  • 举报
回复
最好采用点对点发送文件,服务器转发,服务器压力大!
当然服务器转发肯定没问题的,只要采用的协议编码一致.
lanlingmeijiu 2009-09-16
  • 打赏
  • 举报
回复
还有就是服务器在处理转发数据包的过程中便不去处理客户端的其他请求了,这是什么原因?之前发送消息的时候无论消息发送多么频繁都可以并发处理的
dong364 2009-09-16
  • 打赏
  • 举报
回复
按道理采用udp应该挺快的,况且在局域网, 该不会完整接受完后才转吧?还有缓存可以开大一点
yiluqingfeng 2009-09-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 tianmeshi 的回复:]
如何多客户端服务器压力比较大
[/Quote]
什么意思?是说客户端多了,服务器端会压力大吗?可是我现在只是用一个客户端做测试啊,是不是客户端发送得太快了?
我辣椒哥 2009-09-16
  • 打赏
  • 举报
回复
如何多客户端服务器压力比较大

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧