- 博客(10)
- 资源 (3)
- 收藏
- 关注
原创 二分查找的一个不算完美但正确的写法
今天写了一下二分查找,发现真正写起来并没有自己以为的那么熟练。几经修改,总算写出来了,并且对照了《编程珠玑》中的实现。这只能算是入门级的写法,没有考虑输入序列中有多个相同的值都是查找结果返回最左或最右的问题。代码如下:int BinarySearch(int *pDatas, int nLength, int nValue){ int left = 0; int right = nLen
2013-09-10 16:14:16
902
原创 Linux中写一个已被关闭的套接字时程序终止的解决方法
昨天写一个程序的时候遇到这样一个问题:现有客户端A和服务器端B,服务器端B接受A的TCP连接请求建立连接,客户端A持续向服务器端发送数据。服务器端终止与客户端A的连接。客户端在某次发送数据失败后程序异常退出。 我遇到的问题是:我在客户端A的代码中并没有让A结束,而是在一个死循环中发送数据,结果客户端A就非常诡异的终止了! 今天我终于找到这个问题的答案了。引起这个问题的原因是一个
2013-09-02 16:32:48
1634
原创 TCP多进程并发服务器的accept产生的套接字描述符的两个错误认识
TCP服务器中,多进程并发模式算是比较常见的服务器范式,然而关于这个范式,自己却在很长时间里存在这样两个误区: 误区一:TCP服务器accept得到一个新的套接字描述符,这个新的套接字描述符需要占用一个新的TCP端口。 误区二:TCP服务器fork一个新进程后,两个进程共享已有套接字描述符,那么两个进程可以同时读取到这个套接字中接收到的所有数据,即每个进程都是以复制的形式读取,
2013-09-01 20:44:50
2997
转载 C++模板类的分离模式
C++模板类的分离模式 一般类的定义和实现组织方式:将定义放在.h文件中,实现放在.cpp文件中。 C++中的模板是C++在发展过程中新添的新生力量,template的声明和实现不同于一般的类定义与实现和函数的声明与定义,故在含有模板的C++程序的组织方式就不同于一般的定义与实现相分离的方式。 我曾经遇到的问题: 当在GUN中编译时老是无法通过,
2013-08-23 11:51:18
944
1
原创 C++中单例模式的两种简单实现
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。今天看到这个东西了,就查了些资料。想写的很完善也不是很容易。总结了以下别人的实现方法,挑了两种比较简单的,供和我一样的新手学习。废话不
2013-08-22 16:33:02
1118
原创 初探基于TCP的服务器/客户端结构的聊天系统(四)视频聊天的实现
视频聊天,肯定首先要捕获视频。这个实现倒是很顺利,我是用别人写好的Widget类实现的。好东西,附上链接http://download.youkuaiyun.com/download/zlhforever2/4503796,没分的我可以传给你。很容易用,作者是继承的QWidget类。这个就不贴源代码了。 接下来就遇到一个很让人头疼的问题。我估算了一下数据量,如果采用RGB888格式的也就是RGB24
2013-08-15 22:01:10
1703
原创 初探基于TCP的服务器/客户端结构的聊天系统(三)之表情聊天的实现
前两篇都是讲一些思路上的东西,这次讲点实在一点的东西吧。这次就说说QT中怎么样实现类似QQ那样的动态表情聊天。 既然是表情聊天首先得有表情。我Windows系统里的QQ版本是2013,找了半天也没找到,应该是腾讯把表情资源都封装起来了。百度了一下,各种说法都有,不过我坚信,总有办法可以找到。我就随便下了两个以前的QQ版本,分别是2003和2008。2003看了发现还是相当简陋的,并且也没
2013-08-15 21:05:17
1538
原创 初探基于TCP的服务器/客户端结构的聊天系统(二)之应用层通信协议设计
上次大概说了一下系统的主要框架的选择。这次说说系统的应用层通信协议。 这个也是看了一些东西,分析腾讯的通信协议的文章真是多如牛毛。看了许多,不过惭愧,真正让我特别明白的也就是一篇,附上链接http://blog.youkuaiyun.com/handsy/article/details/6446721。这篇博客可能是QQ比较早版本的应用层协议的具体内容,我也基本上属于照猫画虎,在协议的定义上基本都是参
2013-08-15 12:47:04
1762
原创 初探基于TCP的服务器/客户端结构的聊天系统
一个多月前读完了Stevens的《Unix网络编程》,想稍微实战一下,把学到的东西巩固巩固。于是就选择了做一个类似于QQ这样的程序。 刚开始想的比较简单,因为自己写一些简单的通信程序也写的不少了,以为会很顺利,一个多月做下来,发现满不是那么回事。 首先是通信协议的选择。现有的大部分IM(Instant Messenger,简称IM)程序都是基于UDP的,我也觉得UDP的很方便,
2013-08-12 15:38:27
1222
原创 QT中QLabel类的openExternalLinks和linkActivated使用时的一些注意细节
QT中可以通过两种方法给一个QLabel对象添加链接方法一: ui->label->setText(tr("王中振的博客")); ui->label->setOpenExternalLinks( true );方法二: ui->label->setText(tr("王中振的博客")); 然后添加linkActivated信号响应。 在槽函数中添加
2013-08-12 15:18:24
8366
DirectShow入门--智慧的鱼
2012-10-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅