加载中…
个人资料
正在拉磨
正在拉磨
  • 博客等级:
  • 博客积分:0
  • 博客访问:453,376
  • 关注人气:65
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
博文
标签:

linux

tcp

网络

sigpipe

sigchld

it

在编写一个仿QQ软件,C/S模式。出现的问题:当客户机关闭时,服务器也随着关闭,纠结很久之后,我gdb了下,出现下面提示信息:

Program received signal SIGPIPE, Broken pipe.
0x0012e416 in __kernel_vsyscall ()

在 网上查了一下出现SIGPIPE的原因:如果尝试send到一个已关闭的 socket上两次,就会出现此信号,也就是用协议TCP的socket编程,服务器是不能知道客户机什么时候已经关闭了socket,导致还在向该已关 闭的socket上send,导致SIGPIPE。

而系统默认产生SIGPIPE信号的措施是关闭进程,所以出现了服务器也退出。

 

下面分析TCP协议的缺陷以至于服务器无法及时判断对方socket已关闭:

具 体的分析可以结合TCP的'四次握手'关闭. TCP是全双工的信道, 可以看作两条单工信道, TCP连接两端的两个端点各负责一条. 当对端调用close时, 虽然本意是关闭整个两条信道, 但本端只是收到FIN包. 按照TCP协议的语义, 表示对端只是关闭了其所负责的那一条单工信道, 仍然可以继续接收数据. 也就是说, 因为TCP协议的限制, 一个端点无法获知对端的socket是调用了close还是shutdown.(此段网上抄来的)

&nbs

(2011-12-15 06:04)
标签:

随机数

产生

范围

qt

c

cpp

qstrand

qrand

random

it

分类: C,Cpp,Qt
1.先用qstrand做种子
QTime time;
time= QTime::currentTime();
qsrand(time.msec()+time.second()*1000);
2.取一定范围内的随机数
int xxx=qrand()%5
%5 :在0-4中选出随机数

函数原型:
void qsrand(uint seed);
int qrand();
标签:

qt

多线程

qthread

qobject

最简单

线程

it

分类: C,Cpp,Qt
以前写多线程的程序都是先创建一个对象,继承QThread。重载run(),或者说把自己的一些逻辑或对象写进run()。
有一个大牛,Bradley T. Hughes,说得很有道理:QThread 应该被看做是操作系统线程的接口或控制点,而不应该包含需要在新线程中运行的代码。需要运行的代码应该放到一个QObject的子类中,然后将该子类的对象moveToThread到新线程中。
最简单的方法实现多线程,就是创建一个从QObject继承的对象 如obj1。直接实例化一个QThread 如thread1。用obj1.moveToThread(thread1);直接将obj1扔到thread1里。这样obj1的行为或一些计算过程将直接使用thread1的资源。
当然,你也可以想象同时把obj1,obj2,obj3......objN都扔到thread1这一个线程里,只要还跑得动~



参考文献:http://hi.baidu.com/cyclone/blog/item/5fac3bc7ab1b90d1d10060f2.html
QThread 的使用方法
2010-07-03 17:47
标签:

c

cpp

qt

dll

静态库

windows

win32

it

分类: C,Cpp,Qt

摘自:http://mobile.51cto.com/symbian-271887.htm

本文介绍的是详解 Qt 调用 DLL功能函数,DLL 是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。先来看内容。

AD:


Qt 调用 DLL功能函数是本文要介绍的内容,DLL 是一个包含可由多个程序同时使用的代码和数据的库。不说这么多,先来看内容。

声明: 事先我已经自己动手写了一个简单的DLL文件(myDLL.dll),C版接口的。并且用我前两篇有关DLL文章里面的方法,从DLL中导出了导入库(.lib)文件,dll中有两个函数,原型如下:

  1. void HelloWorld();     //函数内部调用Win32 API,功能是弹出一个helloworld提示框  
  2. int add(int a,int b);  //实现两个数相加,并返回结果 

下面分别通过显

标签:

函数

释放

内存泄漏

拷贝

opencv

编程

图像处理

图形处理

c

it

分类: 图形图像处理
以下文章共总结出cvLoadImage cvCloneImage cvGetRow 三个函数容易由于使用不当而泄露内存,要注意!

OpenCV中的内存泄露问题(cvLoadImage函数)
摘自:http://hi.baidu.com/srcer/blog/item/69890a447bc6c94f510ffe99.html/cmtid/e8aa8ce9c2e3b833b90e2dce

在做项目的过程中,使用OpenCV经常会出现一些内存泄露问题,自己编写的程序出现问题还情有可原,但若是库函数调用和使用时出现,却很令我恼 火。花了好长时间和实践的经验告诉我应该客服它。下面把一些检测出的问题进行化解。(可能是水平不够,这些函数使用不当,望高手指点)

cvLoadImage函数:

可能大家还觉察不出来,但我深有体会,在程序中这个函数使用一次两次感觉不来,但在处理序列图像循环调用这个函数时,内存泄露的可能让你目瞪口呆!http://img.baidu.com/hi/face/i_f23.gif即使你在最后使用cvReleaseImage(&pImg);进行了释放,实验证明:视乎不能成功释放。

 

标签:

维基天文网站

ic天体

资料库

文化

分类: 天文基础知识
维基天文 IC 天体资料库发布
星云星团新总表续编(IC)亦称为星云总表、总表、IC I或IC II,这是个包含星系、星云和星团的目录,实际上是星云星团新总表的补遗。其第一次出版是在1895年,至今已经列入5386个天体,这些天体被称为IC 天体。

维基天文发布包含5386个IC天体的详细数据库。每个IC天体词条均配有天体简介、天体照片、位置信息以及外部链接等多种详细的 信息,为你的观测提供最有价值的参考。新版中我们增加了30000多幅来自各大巡天计划的珍贵天体照片。同时为了方便大家查阅,我们还同时 发布了以100为基数分割的IC天体列表,每个列表中的天体词条均可使用天文小词典功能查看天体简介和缩略图。希望这些资料能给大家提供便利。
欢迎大家前去编辑和提出宝贵意 见!

维基天文网站IC天体资料库:
http://wiki.skylook.org/index.php?ca
标签:

qt

编程

qimage

setpixel

c

it

分类: 编程,制作,DIY
首先解释一下:函数原形void QImage::setPixel ( int x, int y, uint index_or_rgb )并不是要在(x,y)点设置像素值为index_or_rgb!
index_or_rgb指的是像素的索引值。
梦里写得例子,解释一下用void QImage::setPixel表示8位 灰阶图像的方法。
#include <QApplication>
#include <QWidget>
#include <QPainter>
#include <QBitmap>

class PainterWidget : public QWidget {
protected:
    void paintEvent(QPaintEvent*);
};

void PainterWidget::paintEvent(QPaintEvent *event) {
    unsigned char* array;
    unsigned char* base;
    array = (unsigned char*)malloc(1000*1000*sizeof(unsigned char));
    base = array;
    int k,s;
    s = 0;
    for(k=0;k<1000*1000;k++){       
    *array = s;
 &n
标签:

赤道仪

天文望远镜

pentax

三鹰

天文仪器

日本

曹永杰

光学

天文志

分类: 天文器材发烧

摘自:http://www.astronomy.com.cn/bbs/thread-10445-1-1.html

作者:曹永杰(台湾)

前言:
2002年的日本天文望远镜在日本连续景气低迷的情况下,在市场表现上及各厂牌的演变究竟如何?我想许多的天文同好都非常有兴趣想了解.我也就这几年的观察和经验作一简单且不严肃的介绍.以供天文迷等在购买望远镜时多一份参考...
一叶知秋...广告越来越紧缩...
这几年来,日本国内由于经济的不景气,许多天文望远镜大厂的研发和产品重点均朝向高科技的发展.而一般的小天文望远镜厂不是关门就是合并,卖别的产品去了.如JSO,旭精光,ATM及三鹰光器等.
 

所以像国内人气颇丰的天文指南杂志等也营运也日渐困难,在广告营利上开始缩水.因为厂商的广告趋势越来越保守.说实话,天文指南杂志的广告页幅仅剩5年前的1/2.这在去年,从杂志中的广告由总公司-诚文堂新光社内部广告增多,就可见社内的AE拉到愿意提供厂商越来越困难...
日本大厂-五藤光学,日本光学,三鹰光器等纷纷放弃中,小型天文望远镜市场...
以天文望远镜起家的五藤光学(GOTO),早在10年就放弃如

标签:

赤纬

赤经

赤道仪

高桥

手册

星座

分类: 天文实战经验
原译:清华天文社

增补:林宏钦

整理:黄祈雄

前言

高桥制作所的天文望远镜在日本和台湾普遍受到天文同好的喜爱

与肯定,可惜的是一直没有中文的使用手册详述,用家多在实际观测

中养成技艺,而初使用者则无迹可循,往往摸不着头绪,白走许多冤

枉路。

这一份中文使用手册源出清华天文社,由于手头上只有印刷不清

的影印版本,疏漏讹误之处也需要修正,在遍求不到原始电脑文字档

的情形之下 ( 到底有没有电脑档也不知道 ),自个儿着手把全文输入成

电脑文字档,并加以修增,希望能对同好有所助益,苦劳有一些,我

不敢居功,受益于这本手册的同好主要还是要感谢清华天文社所做的

努力。

本手册是高桥制作所制 EM-10 型赤道仪的使用手册,同时也适用

于 EM-200 型赤道仪,对于高桥制的其它型赤道仪也有很好的参考价

值,高桥制的产

标签:

openvpn

网络

vpn

server

client

it

分类: 软件网络应用

摘自:http://hi.baidu.com/jmdgm/blog/item/9834fcc870607a127e3e6f8e.html

一. OpenVPN 安装环境

 

  1. Server 端的环境
  2. redhat, kernel版本: 2.4.20-31.9, IP 为 70.8.7.6
  3. kernel 需要支持 tun 设备, 需要加载 iptables 模块.
    检查 tun 是否安装:
    代码:
     root@a [/]# modinfo tun 
    filename: /lib/modules/2.4.20-31.9/kernel/drivers/net/tun.o
    description:
    author:
    license: 'GPL'
    如果没有 modinfo 命令, 直接找一下, 看看 kernel 里是否有 tun.o 文件:
    代码:
     find -name tun.o 
    ./lib/modules/2.4.20/kernel/drivers/net/tun.o
    检查iptables 模块, 查看是否有下列文件:
    /etc/init.d/iptables
  4. 安装的 OpenVPN 的版本: 2.0.5. 现在似乎已经有一个更新的版本了. 可在
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有