- 博客(54)
- 资源 (2)
- 收藏
- 关注
原创 用iptables过滤防火墙TCP包
在终端中运行以下命令iptables -A INPUT -p tcp --tcp-flags RST RST -j DROPservice iptables save 第一条命令是忽略RST包第二条是保存iptables启动及关闭iptables 设置iptables开机启动 chkconfig iptables on chkconfig iptab
2012-07-19 16:37:14
2486
原创 webbench
webbench最多可以模拟3万个并发连接去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好,安装使用也特别方便。 1、适用系统:Linux 2、编译安装:引用wget http://blog.s135.com/soft/linux/webbench/webbench-1.5.tar.gztar zxvf webbench-1.5.t
2012-06-28 16:24:13
564
转载 Valgrind 使用简单说明
调不尽的内存泄露,用不完的Valgrind(一个介绍程序调试的精彩讲解:http://www.ibm.com/developerworks/cn/linux/l-pow-debug/)Valgrind 介绍 Valgrind是一个GPL的软件,用于Linux(For x86, amd64 and ppc32)程序的内存调试和代码剖析。你可以在它的环境中运行你的程序来监视内存的使用情
2012-06-21 10:56:05
527
原创 linux下编绎ACE
1. 创建环境变量 export ACE_ROOT=/home/zjy/ACE_wrappers export PATH=$PATH:$ACE_ROOT/MPC 2. 生成makefile文件 #cd /home/zjy/ACE_wrappers/ace #mpc.pl -type make -include ../bin/MakeProjectCreato
2011-11-19 15:17:52
773
转载 close_wait状态和time_wait状态
标签: 不久前,我的Socket Client程序遇到了一个非常尴尬的错误。它本来应该在一个socket长连接上持续不断地向服务器发送数据,如果socket连接断开,那么程序会自动不断地重试建立连接。有一天发现程序在不断尝试建立连接,但是总是失败。用netstat查看,这个程序竟然有上千个socket连接处于CLOSE_WAIT状态,以至于达到了上限,所以无法建立新的socket连接了
2011-11-08 11:05:47
854
转载 TCP实现P2P通信、TCP穿越NAT的方法、TCP打洞
[ 原创文档 本文适合中级读者 已阅读43859次 ] 文档代码 工具 TCP实现P2P通信、TCP穿越NAT的方法、TCP打洞作者:谢红伟下载源代码这个标题用了两个顿号三个名称,其实说得是同一个东西,只是网上有不同的说法罢了,另外好像还有人叫TCP打孔(我的朋友小妞听说后问“要打孔啊,要不要我帮你去借个电钻过来啊?”“~!·¥%……·!”
2011-11-04 10:48:00
609
原创 iphone http通讯
//prepar request NSString *urlString = [NSString stringWithFormat:@"http://urlToSend.com"]; NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; [request set
2011-10-25 10:18:09
1473
原创 iphone 字符串 nsstring用法
1.4.1 字符串可能最常使用的类就是NSString。NSString是不可变的,这意味着一旦创建了它,就不能修改它。如果需要修改一个NSString的内容,应该使用NSMutableString类。然而,直接用新的内容创建一个新的NSString,这种做法更为常见。有很多种方法可以创建一个NSString,其中最简单的可能就是下面这种:NSString *myString=
2011-10-21 11:10:14
818
原创 UIscrollView(转)
contentSize是scrollview可以滚动的区域,比如frame = (0 ,0 ,320 ,480)contentSize = (320 ,960),代表你的scrollview可以上下滚动,滚动区域为frame大小的两倍。contentOffset是scroll
2011-10-14 10:43:29
2504
转载 P2P 之 UDP穿透NAT的原理与实现(附源代码)
P2P 之 UDP穿透NAT的原理与实现(附源代码)原创:shootingstars参考:http://midcom-p2p.sourceforge.net/draft-ford-midcom-p2p-01.txt论坛上经常有对P2P原理的讨论,但是讨论归讨论,很少有
2011-10-14 10:42:25
626
原创 iPhone How-to:如何更改UISwitch的提示文本
UISwitch(如下图)可以认为是其他UI库中Checkbox的替代品,但所呈现的内容更丰富,包括文本、颜色、动画。默认情况下,UISwitch的提示文本分别是ON和OFF,并很好地支持国际化以在不同区域语言下显示不同的文字,但由于无法定制导致在有些应用场景中显得不是很准确。比
2011-09-30 10:09:11
726
转载 iPhone开发技巧之网络--- Web服务
iPhone开发技巧之网络篇(2)--- Web服务说到XML不得不提WEB应用中最常见的几种通讯规范:SOAP,XML-RPC,REST,WSDL,JSON等,他们都是基于XML协定的。在这里介绍几种处理web应用中可以利用的程序库:现在云计算技术很火,无论是类似 Go
2011-09-29 10:55:12
699
原创 iphone学习笔记-UIView如何管理它的子视图
UIView提供了很多建立和管理视图的方法。1、添加视图 insertSubview:atIndex: //放在子视图数组的具体索引位置 insertSubview:aboveSubview: //某个子视图前面 insertSub
2011-09-29 10:41:27
3888
原创 关于-viewWillAppear:等无法调用的总结
今天也遇到了这样的问题。产生原因是用了UINavigationController. 将UINavigationController的view作为subview添加到了其他viewController的view中。或者把UINavigationController
2011-09-28 17:11:28
1397
转载 Sigslot介绍
最近在开发一个基于libjingle开源的IM系统,里面有一个其类为has_slots,搜索了一下其资料发现是一个很好用的C++库,先对其简单介绍一下。 1. 简介 sigslot是一个线程安全、类型安全,用C++实现的sig/slot机制(s
2011-09-27 15:38:08
572
转载 UIScrollView 平滑划动处理
iOS开发经常会用到UIScrollView,而能够平滑的展示划动效果,是至关重要的。但,经常会在划动到中间位置的时候,出现卡顿,很影响用户体验性。因此,个人把个人的一些经验整理下,用代码说话,一目了然。 现在UIScrollView使用有两种方法:一种是A
2011-09-26 11:15:21
1043
转载 在navigationBar上面添加多个任意控件
基本的navigationBar上面就左,中,右 3个位置,而且默认也是添加UIBarButtonItem/UINavigationBar按钮,但是很多开发过程中会遇到在上面添加更多其它控件,经过研究后,所以特写此文,算是做个笔记,也希望能够帮助朋友解决正在解决的这方面的问题。
2011-09-26 11:13:32
5998
原创 对一个服务器的几步优化
最近写了一个服务器,业务逻辑很简单,每个协议包往服务器上报数据, 每个数据包中可能有N块数据需要保存在数据库中的.显然, 这个业务逻辑是不能使用类似memcached这样的缓存的, 因为每条数据都是相对独立的, 而且必须保证每个数据都保存到数据库中.这里抛开服务器最基本的那些IO
2011-09-14 14:51:35
700
原创 服务器设计和开发的体会
做服务器有一段时间了,想记录下自己的体会。依我的看法,服务器可以看做是4个部分组合起来的, 底层的网络框架, 通用的数据结构和库, 整个服务器的架构设计,服务器的上层业务逻辑。 底层的网络框架,目前可以说技术基本都是公开的了, 可以自己从头写,采用iocp,epoll
2011-09-06 10:44:32
686
原创 Linux动态库(.so)搜索路径
众所周知,Linux动态库的默认搜索路径是/lib和/usr/lib。动态库被创建后,一般都复制到这两个目录中。当程序执行时需要某动态库,并且该动 态库还未加载到内存中,则系统会自动到这两个默认搜索路径中去查找相应的动态库文件,然后加载该文件到内存中,这样程序就可以使用该动态库中
2011-08-18 17:48:44
748
原创 C++程序运行时内存布局之----------this到底是什么?
先问一个问题,在C++里,成员函数里的this指针和调用此函数的对象地址总是一样的吗?如果你的回答是:不一定。那么至少你是个老手吧,下面的内容你就不用看了;如果你的回答是:是啊,那么强烈建议你看看下面的内容。 非静态成员函数,无论是不是虚函数,都隐藏了一个this指针参数。这个参
2011-07-15 10:01:14
684
原创 程序异常退出时发送邮件报告的代码
利用 NSSetUncaughtExceptionHandler,当程序异常退出的时候,就给指定的邮箱发送邮件,邮件内容包括发生异常时候的详情。代码如下: void UncaughtExceptionHandler(NSException *exception) { NSArra
2011-07-14 18:30:17
602
原创 用NSURLConnection Post上传数据的特殊字符处理
用NSURLConnection Post上传的时候发现一个特奇怪的问题,只要是+号都会替换成空格。例如"google+"就会变成"google ",代码如下: NSString*bodyStr =@"google+"; [urlRequestsetH
2011-07-06 13:18:09
826
原创 分享iphone开发的好网站
1、http://developer.apple.com/iphone/library这个是官方的代码实例2、www.cocoachina.com这个网站比较适合初期开发者,上面的版主之类的也比较热心,一般的问题都会提供帮助3、http://www.tipb.com/国外的一些文章博客,介绍iphone的特性和开发4、http://www.iphonedevsdk.com/
2011-07-01 11:08:00
2359
原创 结合UIImageView实现图片的移动和缩放
因为种种原因,需要在iphone应用中实现图片查看功能,由于iphone屏幕支持多点触摸,于是是想到用“手势”来实现图片的实时缩放和移动。借鉴无所不在的internet网络资料之后,终于实现此一功能,过程如下。一、 首先实现原图显示(不缩放)新建MoveScaleImageView类,继承uiview。用于加载一个UIImage。它有两个主要的成员,一个UIImage对象用于指定
2011-06-27 16:00:00
1252
原创 UIImage图片的缩小与放大
UIImage可以加载图片,但是我们想要得到一张缩小或放大的图片,利用UIImage不能做到,下面我们添加一个UIImage的分类,用来实现UIImage中图片的放大和缩小。首先,创建一个UIImage+Scale类。然后,实现该类的方法:#import @interface UIImage (scale) -(UIImage*)scaleToSize:(CGSize)siz
2011-06-27 14:23:00
3805
原创 objectiv-c资料网址
http://www.cocoachina.com/b/?p=132http://wangjun.easymorse.com/?tag=objective-c&paged=2
2011-06-27 12:41:00
648
原创 Iphone利用UIImagePickerController调用系统照相机
iphone api中提供了调用系统照相机的接口,我们只需调用相应的界面,即刻在自己的程序中获取相机图片.下面是一个非常简单的调用系统照相机的例子.相应的界面如下: 最后可以编辑图片和使用相应的图片. 下面是主要代码:- (void) addPicEvent { //先设定sourceType为相机,然后判断相机是否可用(ipod)没相机,不可用将sourc
2011-06-27 12:28:00
922
原创 contentsiz contentoffset contentInset的区别
contentSize是scrollview可以滚动的区域,比如frame = (0 ,0 ,320 ,480) contentSize = (320 ,960),代表你的scrollview可以上下滚动,滚动区域为frame大小的两倍。contentOffset是scrollview当前显示区域顶点相对于frame顶点的偏移量,比如上个例子你拉到最下面,contentoffset就是(0 ,48
2011-06-27 11:50:00
800
原创 iOS-将图片保存到照片相册中
这是调用api生成的当前绘制的图形。代码很简单:1UIImageWriteToSavedPhotosAlbum(drawImage.image, nil, nil, nil);这里drawImage是一个UIImageView。为nil的参数,可在UIKit Function Reference中查到。UIImageWrite
2011-06-27 11:21:00
3088
原创 iOS-如何判断touch到子视图或离开视图
这是在ios开发中常见的功能。即,touch移动事件,是移动到当前视图的子视图中,还是移动到当前视图以外了。办法是,继承UIView,覆盖touchesMoved方法: - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{ UITouch *touch=[touches anyObject];
2011-06-27 11:01:00
2004
原创 最快速度找到内存泄漏
<br />内存管理是C++程序员的痛。我的《内存管理变革》系列就是试图讨论更为有效的内存管理方式,以杜绝(或减少)内存泄漏,减轻C++程序员的负担。由于工作忙的缘故,这个系列目前未完,暂停。<br /> <br /> <br /> <br />这篇短文我想换个方式,讨论一下如何以最快的速度找到内存泄漏。<br /> <br /> <br /> <br /> <br />确认是否存在内存泄漏<br />我们知道,MFC程序如果检测到存在内存泄漏,退出程序的时候会在调试窗口提醒内存泄漏。例如:<br />cl
2011-02-22 16:47:00
620
原创 重叠IO模型(之二)
<br />三、编程步骤<br />1、创建一个套接字,开始在指定的端口上监听连接请求。<br />2、接收一个入站的连接请求。<br />3、为接受的套接字创建新的WSAOVERLAPPED结构,并分配事件对象句柄。<br />4、以WSAOVERLAPPED结构为参数,在套接字上投递WSARecv调用。<br />5、将所有接受套接字的事件组建事件数组,并调用WSAWaitForMultipleEvents函数,等待与重叠调用关联在一起的事件受信。<br />6、使用WSAGetOverlappedRe
2011-02-14 17:42:00
2056
原创 重叠IO之事件通知模型
<br />/**********************************************************************<br />* Author: JMF<br />* Version:1.0<br />* BUG: 最大只允许同时64个客户端同时连接(WSA_MAXIMUM_WAIT_EVENTS)<br />***********************************************************************/<b
2011-02-14 17:19:00
1087
原创 谈谈RTP传输中的负载类型和时间戳
<br />最近被RTP的负载类型和时间戳搞郁闷了,一个问题调试了近一周,终于圆满解决,回头看看,发现其实主要原因还是自己没有真正地搞清楚RTP协议中负载类型和时间戳的含义。虽然做RTP传输,有着Jrtplib和Ortp这两个强大的库支持,一个是c++接口,一个是c语言接口,各有各的特点,各有各的应用环境,但是仅仅有库就能解决一切问题吗?可能仿照着一些例子程序,你能够完成主要的功能,但一旦问题发生了,不清楚原理你是很难定位和解决问题的,所以在此,用我的经验劝劝大家,磨刀不误砍柴工,做应用还是先把原理搞清楚再
2011-02-14 10:50:00
1049
原创 WSAAsynSelect()模型 FD_READ事件中recv()接收数据的返回值讨论
<br />使用WSAAsynSelect()模型,在FD_READ事件的时候recv()的返回值讨论? <br /><br />C/C++ codedo{ int nRecvStat = recv( m_sockID, pchBuf, nBufLen, 0 ); int nErrorCode = ::WSAGetLastError();}while(nRecvStat > 0); <br />nRecvStat > 0 自然就是实际从SOCKET缓冲区中读出的数据,现在我们讨论nRecvSta
2011-02-12 16:43:00
3134
原创 FD_WRITE 消息机制
<br />我本想把发送和接收分开作为两部分,但是最后我决定只略微解释一下 FD_READ ,留下更多的时间来说明更复杂的 FD_WRITE , FD_READ 事件非常容易掌握. 当有数据发送过来时, WinSock 会以 FD_READ 事件通知你, 对于每一个 FD_READ 事件, 你需要像下面这样调用 recv() :<br /><br />int bytes_recv = recv(wParam, &data, sizeof(data), 0);<br /><br /><br /><br />基
2011-02-12 16:38:00
652
原创 网络编程记录
我是从来不用心跳,影响效率,起一个线程去select就行了C/C++ code int select( __in int nfds, __in_out fd_set* readfds, __in_out fd_set* writefds, __in_out fd_set* exceptfds, __in conststruct timeval* timeout);第4个参数exceptfds中就是所有
2011-02-12 10:44:00
873
原创 select+NONBLOCK
补充一点:只有在使用epoll ET(Edge Trigger)模式的时候,才需要关注数据是否读取完毕了。使用select或者epoll的LT模式,其实根本不用关注数据是否读完了,select/epoll检测到有数据可读去读就OK了。<br /> <br />这里有两种做法:<br /> 1. 针对TCP,调用recv方法,根据recv方法的返回值,如果返回值小于我们指定的recv buffer的大小,则认为数据已经全部接收完成。在Linux epoll的manual中,也有类似的描述:<br /> For
2011-02-12 10:43:00
5872
c++标准库——boost程序库导论.chm
2009-12-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人