关于socket编程的问题,有这方面的经验人进来看看

易企加_天马行空 2010-07-30 03:39:14
现在我需要实现一个这样的场景:

client 向server发送数据,用tcp,但server向client发送数据却需要udp,有没有好的方案?由于链接是长连接,所以方案需要尽量减少链接数。
...全文
164 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 jiuchunyoung 的回复:]
http://www2.minitos.com/article/sort06/info-1830.html

去看看 也许对你有用 尤其 是第一个

http://www.hackhome.com/InfoView/Article_198635.html
[/Quote]

非常感谢你提供的资料,http协议估计不行,不知道你有没有看我后面的回复。现在要的就是发送的速度,http链接,即使维持长连接,估计速度上也不会很高。
JiuchunYoung 2010-07-30
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
想选择udp,只是解决poison client的方案中的一个步骤而已,因为程序上的任何优化或者处理,最终其实只是把压力转给了网卡,如果网络本身传递数据的速度不上去,那么实质上是无法解决问题的。所以如果大家有好的解决办法,希望能告诉我,不胜感激,或者不一定是udp的,就是解决poison client的。
  • 打赏
  • 举报
回复
而客户端向服务器端,除了发送订阅 需要push的数据的信息外,就是实际的交易操作,所以必须要用tcp。当然可以开两个socket来做,但这样一个client就会占用掉两个链接。当然也可以多一倍的服务器来支撑。这是在实在没有解决办法的情况的解决方案。所以,我想问下大家有没有更好的解决办法。
  • 打赏
  • 举报
回复


不知道大家有没有听说poison client的说法,之所以想选择udp是因为,一台服务器可能针对多台客户端,然后每台客户端处在不同的internet位置上,网络的质量会不一样,那么不能因为质量差的客户端影响好的。所以想选择udp,这样不用保持链接,能够加快发送速度,因为server push 数据到客户端会很频繁。但数据适当丢失是允许的。
jizhehaha 2010-07-30
  • 打赏
  • 举报
回复
这样是不行的。就是也不是最好的方案。不知道你想做什么。TCP和UDP的优缺点先了解下。也就是说TCP和UDP完全可以解决通信上的问题。没有必要同一套系统选择两套通信方案。
龍月 2010-07-30
  • 打赏
  • 举报
回复
是啊,UDP 容易丢包,处理很麻烦的。
不能 换成 TCP吗
满衣兄 2010-07-30
  • 打赏
  • 举报
回复
客户端专门开一路UDP的就行了
healer_kx 2010-07-30
  • 打赏
  • 举报
回复
一般来说client像server发udp是可能的,但是server像client发udp,至少可能需要打孔。
最好还是全TCP连接了,早年的QQ也有UDP的传输,现在全改TCP了。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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