当前位置:  技术问答>linux和unix

(新手求助)如何完善一个socket

    来源: 互联网  发布时间:2016-07-11

    本文导语:  客户端和服务器端通过socket进行通信,服务器端的socket程序除了基本的监听,接收,发送以及一些处理工作之外,还需要进行哪些方面的完善才能保证稳定正常的运行? 以及需要注意的各种问题??? | ...

客户端和服务器端通过socket进行通信,服务器端的socket程序除了基本的监听,接收,发送以及一些处理工作之外,还需要进行哪些方面的完善才能保证稳定正常的运行?
以及需要注意的各种问题???

|
如果你是练习 没有引入多线程的话 没有太多的问题
要是引入多线程 做大一点的项目的话 互斥 死锁等这些是经常容易出问题的地方

|


用setsockopt设置reuse是防止TIME_WAIT字段导致的静默期,服务器无法重监听。
此外还得考虑DOS类的 syn攻击,有一些扫描工具可用。
此外,函数能设置成异步就异步吧。

|

比较支持田兄的看法!

而且很多时候,是需要关注哪方面,才设置哪方面。很少有固定的模式,例如就设置了某些,然后就一定很健

壮!这也就是为什么实战经验多的人往往很牛的原因

|
要加上些对异常情况的捕获,判断处理,程序中80%的功能都是来做异常处理的;
选择一个比较好的IO模型,提高程序的吞吐量;
网络程序安全也很重要,通信数据之间的加密,信息安全等等

|
地址重用,在socket调用和bind 调用之间加上一段对socket的设置:
  int opt = 1;
  setsockopt(socket_fd,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof(opt)); 

|
定时链路检测是必须的,呵呵 
对于程序能自动重新连接就不错了

|
好好看一下setsockopt相关,不只是一个reuse,还有发送缓冲区的大小,接收缓冲区的大小,心跳,阻塞,很多的属性可以根据你的需求来设置的。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 新手如何加入开源项目 有什么好的c++,java 开源适合新手 请指点!
  • JDBC的问题,新手高手都来看看吧,说不定能帮帮我这个新手呢,谢谢!
  • 想找共同学习Linux的新手,一起学习,共同成长
  • 新手关于驱动开发的疑问
  • 新手有关linux的问题!
  • 新手急求~~~~~~~~~~~~~~~~~~~
  • 新手学习该用哪个版本
  • 面向新手的终端辅助工具 Clicompanion
  • 我是个新手,请各位老兄给介绍基本好书?
  • 新手请教啦~~能不能帮忙推荐几本书
  • 我是新手
  • 新手:用WEB页面修改数据库中的表?
  • Java新手上路之问题
  • 我是一名新手,请问如何学java
  • (新手)这里怎么看到300篇以外的所有文章?(不是搜索)
  • 新手上路,怎样判断网卡是否安装成功?
  • !!新手求救!!
  • 新手在此多谢了:SUN的宠物商店
  • 新手请教,我用VI时按ESC键,总是回嘟嘟嘟嘟响,请问如何去掉!谢谢!
  • 新手求救!!关于变量初始化


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3