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

请大家帮忙分析下bind出错的原因

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

    本文导语:  一个UDP的网络接收应用程序运行时,突然死掉退出!显示如下错误: Backtrace:  [] (udp_recvmsg+0x0/0x228) from [] (sock_common_recvmsg+0x4c/0x60) [] (sock_common_recvmsg+0x0/0x60) from [] (sock_recvmsg+0x104/0x130)  r5 = C51F39A0  r4 = C15B3DE0...

一个UDP的网络接收应用程序运行时,突然死掉退出!显示如下错误:
Backtrace: 
[] (udp_recvmsg+0x0/0x228) from [] (sock_common_recvmsg+0x4c/0x60)
[] (sock_common_recvmsg+0x0/0x60) from [] (sock_recvmsg+0x104/0x130)
 r5 = C51F39A0  r4 = C15B3DE0 
[] (sock_recvmsg+0x0/0x130) from [] (sys_recvfrom+0x98/0xf0)
 r8 = C56F60A0  r7 = C15B3ED4  r6 = 00157240  r5 = 000005DC
 r4 = 00000040 
[] (sys_recvfrom+0x0/0xf0) from [] (__sys_trace_return+0x0/0x28)
Code: e2880008 e1d330b0 e3a01008 e1c830b2 (e5943020)

如果再一次运行该程序,提示Bind失败。
这时,如果重启机器,则能成功运行,但是运行几十小时后,还是会向上面一样挂掉。

请大家帮忙分析下bind出错的原因!!

|
 当客户端保持着与服务器端的连接,这时服务器端断开,再开启服务器时会出现: Address already in usr
可以用netstat -anp | more 可以看到客户端还保持着与服务器的连接(还在使用服务器bind的端口)。这是由于client没有执行close,连接还会等待client的FIN包一段时间。解决方法是使用setsockopt,使得socket可以被重用,是最常用的服务器编程要点。具体的做法为是,在socket调用和bind 调用之间加上一段对socket的设置:
   int opt = 1;
   setsockopt(socket_fd,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof(opt)); 

|


正解,前两天刚刚学习socket编程,书上就是这么说的。
可以简单的理解为:当服务器端接受(accept)了客户端的请求之后,会创建一个新的socket描述符,此时这个新的socket就独立于原来的socket和客户端进行通讯(read,write操作),而原来的socket继续在帮顶的端口监听(listen)客户端的请求,反复循环着,服务器端的设计原理就是这样的。当服务器端发生了意外而终止了,由于linux内核仍然会将该地址保留一段时间。这是由套接口选项SO_LINGER所控制的。可以按照上面的setsockopt(socket_fd,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof(opt));来设置。

    
 
 

您可能感兴趣的文章:

  • 还是老问题啊!!!高手吗?帮忙啊!LINUX 9.0安装时出错!
  • 编译内核出错,有没有人帮忙阿
  • java访问sqlserver出错:高手快来帮忙啊!!!
  • 我的socket出错,熟手进来帮帮忙呀------->急!!!
  • 为什么使用gcc编译出错。高人帮忙。。。。
  • HPunix 11.11 tar -cf 出错,高手帮忙。。。
  • SunOS 5.9上安装JDK出错,各位兄弟帮帮忙,在线等!
  • RedHat配置Lamp:安装gd是出错?跪求各位大侠帮忙!
  • make perl 模块的时候出错,make: *** No rule to make target,帮忙看看,谢谢。
  • 我在安装alsa时出错,请各位帮忙
  • 帮忙看一段简单脚本,为什么运行出错
  • 各位师兄师姐再帮忙看看为什么下面的代码运行时出错?
  • 在安装编译 freetype-1.3.1.tar.gz 时出错,请求各位帮忙!
  • 我是JAVA的一位初学者请各位师兄师姐帮忙看看下面的代码为什么会提示出错?
  • makefile的出错,请帮忙看看
  • 编译模块出错,大侠帮帮忙!
  • 请大家帮帮忙:编译内核时make bzImage出错。(100分)
  • linux下安装oracle出错啦!!!不知道怎么解决,帮忙看看好吗?
  • 一个程序出错,请帮忙
  • 我的debian怎么设置都无法上网?帮忙看看那里出错了,多谢!
  • ubuntu系统速度有的时候很慢。不知道是什么原因,请帮忙
  • 在Linux下面编译出现以下错误,请帮忙看看是什么原因,多谢了
  • 超级终端下输入某些按键显示的是一个�号,这是什么原因?求高手帮忙
  • 在vmware里面装完后不能启动 , 请帮忙看一下是什么原因?
  • 接收图片失真,多了十几个16进制数,一直找到不原因,请各位高手帮帮忙~~~~急啊
  • socket的connect老是出错!高手帮忙找一下原因
  • java报错,什么原因? 请帮忙,谢谢!
  • 表里有数据却查不出来还报错,不知是什么原因请各位高手帮忙看一下,谢谢.
  • 自己写的一个日志类出现BUG,求帮忙查找原因
  • linux下编译ACE时链接出错,请大侠们帮忙参谋一下,到底是什么原因引起的,谢谢!
  • 分区变为只读的了,帮忙看看日志是什么原因引起的。
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 急啊,谁能帮忙分析一下,必有重谢!
  • ubuntu 下安装libpcap 的时候make时候出错 请帮忙分析分析
  • alsa 框架分析,大家帮忙。
  • 启动portmap时有问题,各位大侠帮忙分析下哪里出了问题
  • linux出现内核错误,请各位前辈帮忙分析
  • 帮忙分析下df的输出
  • 编写把一java程序中所有的print语句都删除,帮忙分析一下思路。
  • 请帮忙分析一下为什么这个循环不中止
  • 兄弟们,请帮帮忙吧,关于LINUX 的调度和时钟中断处理代码的分析!在线等待啊。。。:(
  • 请各位帮忙分析,关于网络的问题
  • 一个问题大家帮忙分析一下
  • 在suse linux下的程序,开辟一小块儿内存竟然用了400多个毫秒,高手帮忙分析一下
  • 服务器负载很容易超高,请大家帮忙分析
  • 请高手帮忙分析一下这两句代码(关于字符转化)
  • 请大家帮忙分析下Linux内核烧写后启动出错?
  • scjp考题一道,请大家帮忙分析?
  • 帮忙分析bash程序,个别语句不懂。
  • linux下C编程:调试中利用core dump 分析的问题,各位帮忙啦,谢谢!
  • 遇到一个很怪的问题,请大家帮忙分析一下!先谢了!
  • Build xorg时提示的错误,帮忙分析下是否autoreconf automake版本问题?多谢!
  • 努力努力再努力,帮忙帮忙来帮忙!
  • 在servlet中有一个关于单引号输出的问题,请大家帮忙,帮忙,帮帮忙!!
  • 小问题,你一定能够帮忙!——菜鸟请求帮忙!!
  • 帮忙帮忙如何设置变量pathclass
  • 没人帮忙吗?我想用JAVA编一个像WINDOW中的画图软件,现在出现了如下问题,请各位老哥老姐帮帮忙
  • 帮帮忙!SCO OpenServer 5.0.5 的root用户口令丢了,怎么找回来啊,帮帮忙!!!!!!
  • 我用smartupload组件遇到问题了,请帮忙!!
  • webmail问题,请高手帮忙!!!谁会使用IMP 3.0????!!!
  • sqlserver iis7站长之家
  • 高手帮忙解释
  • 求教求教,shell问题...各位大哥,帮忙下


  • 站内导航:


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

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

    浙ICP备11055608号-3