当前位置: 技术问答>linux和unix
socket select异常?
来源: 互联网 发布时间:2016-07-30
本文导语: 我写了socket的客户端程序,发现运行一段时间后产生core,调试了下发现是在send函数,socket用的是非阻塞,原来我是循环发送的,后来改为一次发送后,就不在这里产生core了,反而是在接收函数中的select 返回处,出...
我写了socket的客户端程序,发现运行一段时间后产生core,调试了下发现是在send函数,socket用的是非阻塞,原来我是循环发送的,后来改为一次发送后,就不在这里产生core了,反而是在接收函数中的select 返回处,出现异常,不知道是什么原因?是在这里异常,还是异常早就发生了?
|
看看core文件内容吧
能让程序down掉不外乎:内存访问异常,IO读写异常
看看在那个down的附近有没有相关的操作,比如不小心把你的socket当变量改了个值,内存溢出等等
光你给的信息真的很难说.
能让程序down掉不外乎:内存访问异常,IO读写异常
看看在那个down的附近有没有相关的操作,比如不小心把你的socket当变量改了个值,内存溢出等等
光你给的信息真的很难说.
|
检查函好的返回值是个好习惯.
printf("Error: %s, %s, %d, [error=%d, %s]n", __FILE__, __FUNCTION__, __LINE__, errno, strerror(errno)); /* 查看出原因 */
printf("Error: %s, %s, %d, [error=%d, %s]n", __FILE__, __FUNCTION__, __LINE__, errno, strerror(errno)); /* 查看出原因 */
|
WaitSocketReadable(sock, 5)
在调用时sock这个变量貌似没有初始化
在调用时sock这个变量貌似没有初始化