Linux学习
文章平均质量分 80
一劳永逸
IT宅男
展开
-
sigaction函数详解
【sigaction系统调用】 功能描述: 处理信号。既可用于设定对任意信号的处理方式,也可用于检验该信号的目前预设处置方式。 用法: #include int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact); 参数: s原创 2009-06-24 09:25:00 · 4306 阅读 · 0 评论 -
Linux下Socket编程之TCP应用
<br />现在,我们用前面所构建的socket类,重新设计《Linux下Socket编程之TCP Server端》中echo的服务器,然后设计客户端程序。<br />echo服务器的工作原理很简单:<br />1、接收客户端传来的信息;<br />2、将接收到的信息原封不动的返回给客户端。<br />可以看到我们所设计的TCPServerSock类具备了echo服务的所有数据成员,我们只需要添加一个具体的echo方法。因此,我们让设计的echo类从TCPServerSock类中派生出来。<br />//F原创 2010-07-16 20:20:00 · 939 阅读 · 0 评论 -
Linux下Socket编程之TCP原理
一。Socket异常信息之所以把对异常信息的介绍放到原理之前讲,是因为由于socket本身的复杂性,导致了产生各种异常的复杂性。我们应该时刻铭记的是,sokcet本身属于系统(OS),是系统对TCP/IP的实现,也就是说,socket发出的异常信息不代表程序出错,甚至不代表系统出错,而仅仅就是代表socket本身的各种异常情况。另外一点我觉得应该强调的是:socket不是TCP/IP;TCP/IP也不是socket。socket是为广泛的协议设计的,涉及TCP/IP的内容只是socket体系中一个很小的子集原创 2010-07-16 20:10:00 · 2599 阅读 · 0 评论 -
Linux动态库和静态库的建立及使用方法
<br />和Windows系统一样Linux也有静态/动态链接库,下面介绍创建和使用方法:<br />假设有下面几个文件:<br />头文件String.h,声明相关函数原形,内容如下:<br /><br />Strlen.c:函数Strlen的实现,获取给定字符串的长度,内容如下:<br /><br />Strlnen.c:函数StrNlen的实现,获取给定字符串的长度,如果输入字符串的长度大于指定的最大长度,则返回最大长度,否者返回字符串的实际长度,内容如下:<br />生成静态库:<br />利用G转载 2010-07-16 20:32:00 · 1344 阅读 · 0 评论 -
Linux下Socket编程之UDP应用
<br />一。UDP版的echo Server<br />与TCP版的Echo Server类似,我们从Server Socket类中派生出Echo Server类。<br />class UDPEchoServer: public UDPServerSock{<br />public:<br /> explicit UDPEchoServer(<br /> unsigned short server_port,<br /> int pre原创 2010-07-16 20:26:00 · 2146 阅读 · 0 评论 -
Linux下Socket编程之TCP Server端
<br />一。建模<br />绝大部分关于socket编程的教程总是从socket的概念开始讲起的。要知道,socket的初衷是个庞大的体系,TCP/IP只是这个庞大体系下一个很小的子集,而我们真正能用上的更是这个子集中的一小部分:运输层(Host-to-Host Transport Layer)的TCP和UDP协议,以及使用这两个协议进行应用层(Application Layer)的开发。即使是socket的核心部分,网络层(Internet Layer)的IP协议,在编程的时候我们也很少会感觉到它的存原创 2010-07-16 20:07:00 · 2319 阅读 · 0 评论 -
Linux下通用线程池的创建与使用
本文给出了一个通用的线程池框架,该框架将与线程执行相关的任务进行了高层次的抽象,使之与具体的执行任务无关。另外该线程池具有动态伸缩性,它能根据执行任务的轻重自动调整线程池中线程的数量。文章的最后,我们给出一个简单示例程序,通过该示例程序,我们会发现,通过该线程池框架执行多线程任务是多么的简单。 为什么需要线程池目前的大多数网络服务器,包括Web服务器、Email服务器以及数据库服务原创 2009-10-24 16:44:00 · 812 阅读 · 0 评论 -
Select函数应用
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所原创 2009-06-24 09:23:00 · 912 阅读 · 0 评论 -
timer的使用介绍
Linux提供了兩種基本的Timer機制可以使用:alarmsetitimer● alarm#include unsigned int alarm(unsigned int seconds);這 是一個簡單的設定Timer介面。當呼叫了alarm( n)後,等待n秒後,就會觸發一次的SIGALRM的signal原创 2009-06-24 09:24:00 · 1152 阅读 · 0 评论 -
Linux下Socket编程之UDP原理
<br />一。设计UDP Server类<br /><br />人们通常用电话连线来说明TCP协议,而UDP协议,则常常用邮递来做比喻。与TCP有连接的信息传输方式不同,UDP协议被认为是对底层IP协议简单的扩展:协议并不保证每个数据包都会到达目的地,也不保证到达的顺序,而仅仅就是“尽力”的发送每一个数据包。我在这篇教程中有时候使用“数据包”有时候使用“数据报”,广义的说,这两个词意思类似,有代表一个有大小边缘的数据块。但是,用“数据包”的时候,我想强调的是这个数据块中所传送的数据部分;而“数据报”则更强原创 2010-07-16 20:24:00 · 5679 阅读 · 0 评论