- 博客(23)
- 资源 (2)
- 收藏
- 关注
转载 在linux系统下core文件的调试方法
在linux系统下core文件的调试方法 在程序不寻常退出时,内核有可能把该程序当前内存映射到core文件里,内核会在当前工作目录下生成一个core文件(当一个程序崩溃时,在进程当前工作目录的core文件中复制了该进程的存储图像。core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的)。使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行数。
2010-05-19 17:09:00
643
转载 TCP协议三次握手四次挥手过程分析
TCP(Transmission Control Protocol) 传输控制协议TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急
2010-05-18 22:06:00
1343
原创 什么是CGI
1. 定义: CGI(Common Gateway Interface)是HTTP服务器与你的或其它机器 上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。 2. 功能: 绝大多数的CGI程序被用来解释处理杰自表单的输入信息,并在服 务器产生相应的处理,或将相应的信息反馈给浏览器。CGI程序使 网页具有交互功能。 3. 运行环境: CGI程序在UNIX操作系统上CERN或NCSA格式的服
2010-05-18 21:41:00
654
转载 linux下的deamon进程
设计一个linux下的deamon进程,关键只有几个:1.fork两次。2.fork第一次和第二次之间成为进程组头。3.改变工作目录。4.忽略信号。5.设置读写掩码。一下是一个从网络搜集到的例程,非常好的演示了上述要点,存此备忘。#include #include #include #include void main(int argc, char ** argv){time_t now;int
2010-05-18 21:17:00
533
转载 Linux 的多线程编程的高效开发经验
2009 年 4 月 23 日本文中我们针对 Linux 上多线程编程的主要特性总结出 5 条经验,用以改善 Linux 多线程编程的习惯和避免其中的开发陷阱。在本文中,我们穿插一些 Windows 的编程用例用以对比 Linux 特性,以加深读者印象。背景Linux 平台上的多线程程序开发相对应其他平台(比如 Windows)的多线程 API 有一些细微和隐晦的差别。不注意这些
2010-05-18 21:05:00
463
转载 linux中线程相关函数
linux中线程相关函数2010年03月09日 星期二 22:181. 比较两个线程 ID 是否一致。 线程ID 使用 pthread_t 数据类型来表示。Linux 使用 unsigned long int 表示pthread_t 数据类型。Solaris 9 把 pthread_t 数据类型表示为 unsigned int。FreeBSD5.2.1 和 MA
2010-05-18 20:50:00
1824
转载 epoll使用详解(精髓)
epoll使用详解(精髓) epoll - I/O event notification facility在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内
2010-05-18 17:33:00
444
转载 CTorrent程序源码分析
CTorrent程序源码分析2007-01-31 20:26 我在大四上学期时曾做过BT客户端的移植工作。当时程序有一些bug,需要查看源代码才能解决。然后便进入了先是痛苦万分然后茅塞顿开最后十分享受的代码阅读。 互联网上讨论BT的的不少,但真正涉及底
2007-10-05 14:39:00
2392
转载 编译 eMule v0.46b(成功!)
第一次编译0.46b没成功,后来有又尝试了几种方式,综合了下,对原来的网络资源错误的地方做了修改,正确的编译方法如下: 先下载下面4个库: Crypto++ 5.2.1 http://www.eskimo.com/~weidai/cryptopp521.zip zlib123.zip http://www.zlib.net/zlib123.zip ResizableLib 1.3 http://
2007-09-23 11:55:00
944
转载 从MSN和QQ文件传输速度说开去
发现很多情况下,MSN传输文件比QQ要慢,倒不是说MSN没有快的时候,但是大部分的时候是真的比QQ慢,连我这种神经比较大条的人都注意到了, Google了一下,早就有人做了解答,基本上就是说MSN传输文件是使用TCP,而QQ使用UDP,剩下的事情就是论证TCP传输文件没有UDP快.大 概的就是下面的几个观点: 1. TCP是可靠的,需要验证数据是否到达和是否正确,而UDP是不可靠的,少做了很多
2007-08-05 11:07:00
767
转载 穿透Socks5的UDP
网络编程中,对于数据传输实时性要求较高的场合,大家都会选择UDP来作为数据传输协议,在TCP/IP协议族中UDP协议较TCP协议需要的网络系统资源更少。然而在企业应用中,由于网络安全原因等会导致除了特定端口以外的IP数据无法通过专用的路由或网关。为了支持这类应用,制定了专门的支持Socks连接的socks4/socsk5协议。Socks协议允许实现此类功能的代理软件可以允许防火墙(本
2007-08-05 09:21:00
1478
转载 穿透防火墙建立UDP连接
知道现在流行的P2P软件和IM软件是如何让两台分处在不同防火墙后面的电脑直接对话的吗?SIP当然是一种,还有一种被广泛应用的就是本文介绍的UDP Hole Puching技术。 为了便于讲述,我们假设有这样一个网络拓扑结构:IP=A.A.A.A IP=1.1.1.1 HostA----------FirewallA---------| | Server IP=S.S.S.S | HostB-
2007-08-05 08:44:00
1897
转载 用UDP实现可靠文件传输
大家都清楚,如果用TCP传输文件的话,是很简单的,根本都不用操心会丢包,除非是网络坏了,就得重来。用UDP的话,因为UDP是不可靠的,所以用它传输文件,要保证不丢包,就得我们自己写额外的代码来保障了。本文就说说如果保证可靠传输。 要实现无差错的传输数据,我们可以采用重发请求(ARQ)协议,它又可分为连续ARQ协议、选择重发ARQ协议、滑动窗口协议。本文重点介绍滑动窗口协议,其它
2007-08-04 18:53:00
1359
1
原创 转-全球最小的一款P2P软件- eMuleBT软件框架分析
eMuleBT是一款开源的软件项目(www.emulebt.com),俗称“变态驴”。因为同时集成了eMule和BT的功能,容量仅为460K,从而引起了一些人的注意。因为对eMule和BT的功能比较感兴趣的人也确实不少,所以小记也花了不少工夫请专业人士对其进行了分析,现对其表叙如下,以飨读者。 eMuleBT是完全安装C++的思想来写的一款软件,这样他的类封装是比较好的
2007-07-13 06:51:00
999
原创 Nutch相关的资料
Nutch相关的资料 <!--google_ad_client = "pub-3593204875158947";google_ad_width = 250;google_ad_height = 250;google_ad_format = "250x250_as";google_a
2007-06-20 23:57:00
794
原创 Lucene:基于Java的全文检索引擎简介
Lucene:基于Java的全文检索引擎简介作者:车东 发表于:2002-08-06 18:08 最后更新于:2007-04-12 11:04版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明。http://www.chedong.com/tech/lucene.html Lucene是一个基于Java的全文索引工具包。 基于Jav
2007-06-20 22:54:00
678
原创 Winsock, ConnectEx, shutdown, SO_UPDATE_CONNECT_CONTEXT and WSANOTCONN
//=======================================================#include #define WIN32_LEAN_AND_MEAN#include #includeint main() {// Appint iRet;// Startup WinSockWSADATA wsaData;printf("WSAStartup(...):/n
2007-06-18 18:25:00
2577
原创 //资源保护对象
class CAutoLock{public: CAutoLock(){ ::InitializeCriticalSection(&m_crit);} virtual ~CAutoLock() { ::DeleteCriticalSection(&m_crit); }public: void Lock(){ ::EnterCriticalSection(&m_crit); } void Un
2007-06-04 16:58:00
761
原创 Vector的初始化与遍历
std::vectorint> IntTest; for (int i = 0; i 10; ++i) { IntTest.push_back(i); } for (std::vectorint>::iterator iter = IntTest.begin(); iter != IntTest.end(); ++iter) { std:
2007-06-04 09:21:00
808
原创 用 VC 建立 Windows 服务程序
为什么要使用服务应该程序呢?服务程序就像系统的一些服务一样,能够自动地启动,并执行相应的操作;而且因为服务程序的在层次上和一般的应用程序不同,其能够在系统启动时就自动地运行,而不像一般的应用程序那样一定要在登陆后才能运行,这些就是服务的一些好处了,如果你也想你的程序具有这样的功能,那么你就可以建立一个服务应用程序了。下面就跟着我一步一步地教你怎么去创建一个服务应用程序吧。 一、建立
2007-06-03 21:42:00
1874
原创 关于完成端口的应用,问一下,完成端口是不是只能用来做服务器?
DWORD WINAPI ServerWorkerThread(LPVOID lpParam) { HANDLE CompletionPort = (HANDLE)lpParam; DWORD BytesTransferred; LPOVERLAPPED lpOverlapped;
2007-06-03 21:23:00
697
原创 线程进入阻塞时,线程会不会让出CPU?
看你说的阻塞指的是什么,如果是死循环,当然占CPU,如果是用等待同步事件,会让出CPU碧水蓝天 [等级:◆(初级)] (信誉值: 100) 回复于: 2005-5-25 14:34:56 Top如果线程函数结构如下:DWORD ThreadFun(LPVOID para){while(1){阻塞语句;//执行到此处阻塞时,线程会不会让出CPU?}}alan [等级:◆◆◆
2007-06-03 21:08:00
6142
原创 想到文本在写库
//如果是目录。递归向更低层次查找FFIND(ff.GetFilePath()+"//*.*");}else if(!ff.IsDirectory() && !ff.IsDots()){//是文件则,写数据库 File InfoCFileStatus rStatus;//File Info structure Typeif(CFile::GetStatus(ff.GetFilePath(),rS
2007-06-03 21:05:00
676
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人