有人开发过高性能稳定的SOCKET服务器吗?

LongHai 2006-01-09 02:59:58
高人:
 天将将大任于斯人也,必先苦大家的心志,目前就碰到了一个问题,我开发了一个SOCKET服务器,我一直定不定期的收到信息不全的数据包或者数据有变的数据包,导致我程序访问该包的内存时出错,从而导致程序退出,不知哪位东方不败有做过,是否也有发生过这样的问题,能够帮小生想一个比较好的方案或者解决方法?
...全文
609 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
周江涛 2006-02-15
  • 打赏
  • 举报
回复
直接扔掉怎么行啊!TCP粘包是很正常的,扔掉岂不丢失数据了?
charles_y 2006-02-15
  • 打赏
  • 举报
回复
程序处理的时候自己判断数据的正确性,不然恶意的数据包完全可以使程序崩溃
yingpf 2006-02-14
  • 打赏
  • 举报
回复
协议的问题比较多
AAAAAANWJ 2006-02-12
  • 打赏
  • 举报
回复
我以前写程序,经常把公司的服务器端的程序搞的退出.
后来他们改了协议,包太大,太小,都不拆了,直接仍掉.
其它的就是解析协议了.
wihi 2006-02-10
  • 打赏
  • 举报
回复
稳定的就作过,高性能谈不上,惭愧

另外:ACE不适合普通开发,也并非高性能
花时间去搞懂ACE、排除开发中遇到的、隐藏的ACE错误、陷阱,还不如踏踏实实的自己写框架,效率或性能、扩展性、自由度比用ACE好N倍
AAAAAANWJ 2006-02-10
  • 打赏
  • 举报
回复
高性能稳定的SOCKET服务器,学习.设计很重要.
everandforever 2006-01-13
  • 打赏
  • 举报
回复
TCP是基于数据流的,所以你的包要规定好格式。要么是定长数据包,要么数据包中就要包含数据包的长度信息。

ACE的初衷是做到各操作系统通用,而不是高效吧?
xiao_xiao_zi 2006-01-12
  • 打赏
  • 举报
回复
如果是TCP的
感觉楼主根本没做拆包
xiao_xiao_zi 2006-01-12
  • 打赏
  • 举报
回复
真的想要高性能的话就用ACE
单独用vc开发出来的高性能我还没有见过

例如vc写的qq就是个很好的反例

无稽之谈,ACE本来就不是为了高性能而开发的
设计良好的专用服务器框架性能肯定高过ACE
LongHai 2006-01-12
  • 打赏
  • 举报
回复
我有做过粘包的分折,我只是想确认一下是服务器收到了数据不全的包还是我协议设计的问题,我不懂如果是TCP SOCKET有没有这种情况?
arcnode 2006-01-12
  • 打赏
  • 举报
回复

回复人: pripor(蹲在墙头等红杏)
真的想要高性能的话就用ACE
单独用vc开发出来的高性能我还没有见过

例如vc写的qq就是个很好的反例
--------------
qq算服务器吗,qq是客户端啊,怎么成了你的反例了?
ace用什么实现的,还不是api呀,你自己水平次但不要怀疑别人能做出好东西。
mme 2006-01-11
  • 打赏
  • 举报
回复
完全是协议设计的问题
WinEggDrop 2006-01-11
  • 打赏
  • 举报
回复
楼主将主题也弄错了吧,你这问题的主题应该是"如何编写安全的socket服务器".如果你的socket服务器会出现"致我程序访问该包的内存时出错"这种问题,这完全是由于你编写的程序的代码对于接收数据的buffer的边界或者对接收到的数据的检查不足所导致.我只能说没办法帮你,只能是你自己帮助自己,出现这种问题的原因主要就是经验不足,还有就是对于写代码的安全性不是太重视,建议你看一下有关如何编写安全代码的相关资料.
pripor 2006-01-10
  • 打赏
  • 举报
回复
真的想要高性能的话就用ACE
单独用vc开发出来的高性能我还没有见过

例如vc写的qq就是个很好的反例
fengge8ylf 2006-01-09
  • 打赏
  • 举报
回复
LongHai 你在那里 在北京的话我可以帮你
LongHai 2006-01-09
  • 打赏
  • 举报
回复
那要怎么效验数据包呢?谢谢!
flashboy 2006-01-09
  • 打赏
  • 举报
回复
1。在设计协议时,要充分考虑该情况. 使包内容错误产生时,可以根据协议方便快速的诊断出.
2. 服务器端对包进行解析时, 要严格的对包进行校验, 防止恶意连接模拟正常包,而实现缓冲区溢出等攻击.

18,356

社区成员

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

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