
UNIX NETWORK PROGRAMMING
文章平均质量分 61
crfoxzl
这个作者很懒,什么都没留下…
展开
-
Big-endian和Little-endian
简而言之:Big endian machine: It thinks the first byte it reads is the biggest.Little endian machine: It thinks the first byte it reads is the littlest.举个例子,从内存地址0x0000开始有以下数据 0x0000 0x12 0x0001 0x转载 2008-01-22 16:23:00 · 561 阅读 · 0 评论 -
getsockname()
简述:获取一个套接口的本地名字。 #include int PASCAL FAR getsockname( SOCKET s, struct sockaddr FAR* name, int FAR* namelen); s:标识一个已捆绑套接口的描述字。 name:接收套接口的地址(名字)。 n原创 2008-02-14 22:18:00 · 5633 阅读 · 0 评论 -
getpid/getppid系统调用
功能描述: getpid返回当前进程标识,getppid返回父进程标识。 用法: #include #include pid_t getpid(void);pid_t getppid(void);例子:#include #include #include int main(void){ pid_t pid; printf("Before fork .../n"); s原创 2008-02-16 15:40:00 · 2233 阅读 · 0 评论 -
UNIX 进程揭秘--进程的生命周期
探索运行在 UNIX 操作系统下的进程的生命周期Sean A. Walberg (sean@ertw.com), 高级网络工程师2007 年 7 月 16 日研究进程的生命周期,以便您能将所看到的系统上发生的事情与内核中发生的事情联系起来。系统管理员必须知道 UNIX® 环境中的进程是如何创建和销毁的,以便了解系统是如何组合起来的,以及如何管理行为异常的进程。类似地,开发人员必须了解转载 2008-02-16 20:15:00 · 1272 阅读 · 0 评论 -
僵尸进程(zombie process)
僵尸进程是如何产生的? 当进程调用fork()后,子进程运行完毕后,先行退出,父进程继续运行,这时候,操作系统维护着退出的子进程的信息,如cpu时间,内核时间,退出的状态等等,需要被他的父进程收集。此时,退出的子进程状态是僵尸状态,如果父进程有很多僵尸子进程的话,系统的性能可能会收到影响。这时候,父进程可以调用wait()或waitpid()函数来收集僵尸子进程,从而使僵尸进程消失。如何避转载 2008-02-27 15:14:00 · 4377 阅读 · 0 评论 -
套接口编程基础
套接口通讯的基石是套接口,一个套接口是通讯的一端。在这一端上你可以找到与其对应的一个名字。一个正在被使用的套接口都有它的类型和与其相关的进程。套接口存在于通讯域中。通讯域是为了处理一般的线程通过套接口通讯而引进的一种抽象概念。套接口通常和同一个域中的套接口交换数据(数据交换也可能穿越域的界限,但这时一定要执行某种解释程序)。Windows Sockets规范支持单一的通讯域,即Internet原创 2008-03-01 15:13:00 · 925 阅读 · 0 评论 -
函数名做函数参数
void (*func)(int) 知道这样定义这个函数什么意思么?先解释void (*func)(int): void func()->void func(int)->void *func(int)->void (*func)(int) 上面的图示能看明白吧?func是一个函数指针,它的返回类型为void,它所指向的函数接收一个int型的参数。若是写成void *func(int)则变成了:转载 2008-03-04 23:40:00 · 9034 阅读 · 0 评论 -
unix-关于信号、信号处理函数
信号是发生某件事时对进程的通知,它不可以被预知。信号可以来自其它进程或者进程本身,也可以是来自内核。每个信号都有一个处理办法(disposition),也称作与信号关联的行为(action),一般有三种处理方法:1 提供一个函数(signal handler),在信号发生时调用,这称之为捕获(catching)。2 设置信号的处理办法为SIG_IGN,忽略它,但有两种信号是不能忽略的:SIGKIL原创 2008-03-03 16:34:00 · 1972 阅读 · 0 评论 -
Linux编程:信号篇
第1节 信号 信号基本原理 Linux是一种多用户多任务的操作系统,系统内会有多个进程存在。无论是操作系统与用户进程之间,还是用户进程之间,经常需要共享数据和交换信息。进程间相互通信的方法有多种,信号便是其中最为简单的一种,它用以指出某事件的发生。在Linux系统中,根据具体的的软硬件情况,内核程序会发出不同的信号来通知进程某个事件的发生。对于信号的发送,尽管可以由某些用户进程发出,但是大多数转载 2008-03-03 16:32:00 · 867 阅读 · 0 评论 -
VMware安装及基于系统安装手册
今天我们就给大家介绍一款由EMC公司推出的VMware Workstation软件。我们使用的这款软件的版本是VMware.Workstation.5.5.3.Build34685,电脑配置如下:CPU AMD闪龙2200+(462接口)、内存 1GB DDR333、硬盘 160GB/7200转。 图1软件安装界面,软件安装不用费太多的功夫,只要按照顺序点击下一步安装即可。安装后启动程序,便出现原创 2008-03-07 12:44:00 · 1026 阅读 · 0 评论 -
Fedora Core && VMware
Official HomePage:http://fedoraproject.org/Fedora 是一个开放的、创新的、前瞻性的操作系统和平台,基于 Linux。它允许任何人自由地使用、修改和重发布,无论现在还是将来。它由一个强大的社群开发,这个社群的成员以自己的不懈努力,提供并维护自由、开放源码的软件和开放的标准。Fedora 项目由 Fedora 基金会管理和控制,得到了 Red Hat,原创 2008-03-06 20:44:00 · 806 阅读 · 0 评论 -
在windows XP下如何用Vmware装Linux操作系统
下载VMWare解压后根据提示正触安装VMWare到硬盘中 (1) 建立虚拟机 A.用鼠标左建双击桌面中的"VMware workstation"图标,运行虚拟机 B.建立一台虚拟机。点击“FILE(文件)”-“NEW(新建)”--“NewVirtual Machine( 新建虚拟机)”,弹出虚拟机创建菜单。 C.根据向导一步一步地创建虚拟机,首先选择安装方式是“TYPICAL(典型)”还是 “C原创 2008-03-07 12:42:00 · 1485 阅读 · 0 评论 -
X Window System
X Window System(有时称"X"或者"Xwindows")是用于管理分布式网络中窗口图形用户界面的开放、交叉平台、客户/服务器系统。一般地,这样的系统为视窗系统。在X Window中,客户-服务器关系跟普通情况相反。远程计算机包含要求在各个PC或工作站显示管理服务的应用程序。X Window主要用于大型机、微型机以及工作站互连的网络,它也用于X终端,X终端实质上是具有显示管理功能但没有转载 2008-03-08 00:41:00 · 1072 阅读 · 0 评论 -
UNIX常用系统函数
getopt(分析命令行参数) 相关函数 表头文件 #include定义函数 int getopt(int argc,char * const argv[ ],const char * optstring);函数说明 getopt()用来分析命令行参数。参数argc和argv是由main()传递的参数个数和内容。参数optstring 则代表欲处理的选项字符串。此函数会返回在argv转载 2008-02-13 18:55:00 · 1510 阅读 · 0 评论 -
UNIX 进程--多任务原理
了解 UNIX 的多任务原理 级别: 中级 Martin Streicher (martin.streicher@linux-mag.com), 主编, Linux Magazine 2007 年 5 月 16 日 在转载 2008-02-16 20:19:00 · 1415 阅读 · 0 评论 -
fork函数剖析
fork函数的原形是: pid_t fork(void); 使用它必须包含两个头文件:以及。 它的功能是啥呢?很简单,就是新建一个子进程。 许多时候我们需要在一个进程中执行另一个程序,但又不想影响本进程的运行,那么可以创建一个子进程,然后再进行处理。 那新建的子进程的特点是什么?它其实就是父进程的复制品,继承了几乎所有能继承的,包括标准输出输入、变量值等等。注意这里是复制品,它们的内容几乎一样,但原创 2008-02-16 14:32:00 · 1227 阅读 · 0 评论 -
const用法
const的几种用法: 1.const用来限制变量 const int a; //a的值为不可变 const int *p; //*p的值为不可变 int* const p; //p值为不可变 const int* const p; //p的值不可变,*p也不可变 2.cosnt用来限定函数 const int fun(转载 2008-01-23 21:42:00 · 1430 阅读 · 0 评论 -
snprintf函数用法
int snprintf(char *restrict buf, size_t n, const char * restrict format, ...);函数说明:最多从源串中拷贝n-1个字符到目标串中,然后再在后面加一个0。所以如果目标串的大小为n 的话,将不会溢出。函数返回值:若成功则返回欲写入的字符串长度,若出错则返回负值。Result1(推荐的用法)#include #原创 2008-01-23 22:39:00 · 147194 阅读 · 6 评论 -
Linux通配符
1、基本的通配符有哪些? “?”可替代单个字符。 “*”可替代任意字符。 方括号“[charset]”可替代charset集中的任何单个字符。 对最后一条做些解释。[cChH]通配符便可替代c或h字符的大小写形式。通配符集还能描述介于字符对之间的所有字符。如“[a-z]”就可以代替任意小写字母,而[a-zA-Z]则可替代任意字母。注意可替代的字符包括字符包括字原创 2008-01-24 15:01:00 · 3192 阅读 · 0 评论 -
SIZE_T AND SSIZE_T
size_t 是为了方便系统之间的移植而定义的在32位系统上 定义为 unsigned int在64位系统上 定义为 unsigned long更准确地说法是 在 32位系统上是32位无符号整形在 64位系统上是64位无符号整形size_t一般用来表示一种计数,比如有多少东西被拷贝等sizeof操作符的结果类型是size_t,该类型保证能容纳实现所建立的最大对象的字节大小。 它的意义大致是“适转载 2008-01-24 16:01:00 · 1238 阅读 · 0 评论 -
read,readline 函数和 write 函数
1. read #include ssize_t read(int filedes, void *buf, size_t nbytes); 返回值:读取到的字节数;0(读到 EOF);-1(出错) read 函数从 filedes 指定的已打开文件中读取 nbytes 字节到 buf 中。以下几种情况会导原创 2008-01-26 22:33:00 · 14603 阅读 · 0 评论 -
C/C++语言void及void指针深层探索
1.概述MGULinux联盟 许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。MGULinux联盟MGULinux联盟 2.void的含义MGULinux联盟 void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数转载 2008-01-28 13:29:00 · 505 阅读 · 0 评论 -
网络字节序和主机字节序
谈到字节序的问题,必然牵涉到两大CPU派系。那就是Motorola的PowerPC系列CPU和Intel的x86系列CPU。PowerPC系列采用big endian方式存储数据,而x86系列则采用little endian方式存储数据。那么究竟什么是big endian,什么又是little endian呢? 其实big endian是指低地址存放最高有效字节(MSB),而little e原创 2008-01-30 21:25:00 · 825 阅读 · 0 评论 -
The inetd “Super-Server”
FreeBSD Handbook Prev Chapter 27 Network Servers Next 27.2 The inetd “Super-Server”Con原创 2008-02-01 15:47:00 · 862 阅读 · 0 评论 -
Novell NetWare 及其协议
NetWare 是由 Novell 公司推出的网络操作系统,专门提供透明的远程文件访问以及大量其它分布式网络服务,包括共享打印机、支持各种应用软件,如电子邮件的传输和数据库的访问。NetWare 规定了 OSI 参考模型的上面五层并可以运行在任意媒体访问协议(第二层)上。另外,NetWare 可以运行在从个人计算机到大型机等各种计算机系统上。NetWare 及其支持的相关协议通常与其它多种通用协议原创 2008-02-04 16:21:00 · 3078 阅读 · 0 评论 -
ssh
SSH:安全外壳协议 一、SSH介绍 什么是SSH? 传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据, 别有用心的人非常容易就可以截 获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的, 就是很容易受到“中间人”(man-in-the-middle)这种方式的攻 击。所谓“中间人”的攻击方式, 就是“中间人原创 2008-02-04 17:10:00 · 654 阅读 · 0 评论 -
Linux指令大全
Liunx常用命令。cat cd chmod chown cp cut 名称:cat 使用权限:所有使用者 使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName 说明:把档案串连接后传到基本输出(萤幕或加 > fileName 到另一个档案) 参数: -n 或 --number 由 1 开始对所有输出的行数编号 -b 或 --number-non转载 2008-02-12 13:41:00 · 1770 阅读 · 0 评论 -
fork函数与vfork函数
一、fork1. 调用方法#include #include pid_t fork(void);正确返回:在父进程中返回子进程的进程号,在子进程中返回0错误返回:-1 子进程是父进程的一个拷贝。即,子进程从父进程得到了数据段和堆栈段的拷贝,这些需要分配新的内存;而对于只读的代码段,通常使用共享内存的方式访问。fork返回后,子进程和父进程都从调用fork函数的下一条语句开始执行。转载 2008-02-16 14:29:00 · 773 阅读 · 0 评论 -
What is a Distributed System?
What is a distributed system?No completely satisfactory definition has been given for a distributed system, but the following can be used as a loose guide: * A distributed system is a collection原创 2008-03-12 23:39:00 · 1288 阅读 · 0 评论