摘要: 启动服务器端程序zhaoxj$ make tcpserv01gcc -I../lib -g -O2 -D_REENTRANT -Wall -c -o tcpserv01.o tcpserv01.cgcc -I../lib -g -O2 -D_REENTRANT -Wall -o tcpserv01 tcpserv01.o ../libunp.a -lpthreadzhaoxj$ ./tcpserv01 &[1] 13424zhaoxj$ netstat -antp(并非所有进程都能被检测到,所有非本用户的进程信息将不会显示,如果想看到所有信息,则必须切换到 root 用户)激活Inte 阅读全文
posted @ 2012-03-19 10:06 PoleStar 阅读(277) 评论(0) 推荐(0) 编辑
摘要: main 函数:#include "unp.h"int main(int argc, char **argv){ int sockfd; struct sockaddr_in servaddr; if (argc != 2) err_quit("usage: tcpcli <IPaddress>"); /*Socket函数原型int socket (int family, int type, int protocol);protocol为0时 ,以选择给定family和type组合的系统缺省值... 阅读全文
posted @ 2012-03-19 09:54 PoleStar 阅读(371) 评论(0) 推荐(0) 编辑
摘要: 一个简单的回射服务器的步骤:1.客户端从标准输入读入一行文本,并写给服务器。2.服务器端从网络输入读入这行文本,并返回给客户3.客户端从网络输入读入这行反射文本,并显示在标准输出上。如图:服务器端的反射程序:#include "unp.h"int main(int argc, char **argv){ int listenfd, connfd; pid_t childpid; socklen_t clilen; /*sockaddr_in为ipv4 套接口地址结构 详解参照3.2节... 阅读全文
posted @ 2012-03-19 09:48 PoleStar 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 1.下载(UNIX® Network Programming Volume 1)源码2.阅读README提醒:很多初学者跟我一样静不下心来读E文的README。可README对我们搭建程序环境至关重要,一定要克服这种心里障碍。根据readme提示 进行下列操作1. ./configure # try to figure out all implementation differences # 会在根目录生成相应的 Makefile,Make.defines,config.h 等重要文件2. cd lib # build the basic library that all progr 阅读全文
posted @ 2012-03-19 09:41 PoleStar 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 功能说明:Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况参 数:-a或–all 显示所有连线中的Socket。-A<网络类型>或–<网络类型> 列出该网络类型连线中的相关地址。-c或–continuous 持续列出网络状态。-C或–cache 显示路由器配置的快取信息。-e或–extend 显示网络其他相关信息。-F或–fib 显示FIB。-g或–groups 显示多重广播功能群组组员名单。-h或–help 在线帮助。-i或–interfaces 显示网络界面信息表单。-l或–listening 显示监控中 阅读全文
posted @ 2012-03-17 14:52 PoleStar 阅读(7138) 评论(0) 推荐(1) 编辑
摘要: 在shell中常用的特殊符号罗列如下:# ; ;; . , / \ 'string'| ! $ ${} $? $$ $* "string"* ** ? : ^ $# $@ `command`{} [] [[]] () (()) || && {xx,yy,zz,...}~ ~+ ~- & \<...\> + - %= == !=输出/输入重导向> >> < << : > &> 2&> 2<>>& >&2# 井号 (c 阅读全文
posted @ 2012-03-02 21:12 PoleStar 阅读(307) 评论(0) 推荐(0) 编辑
摘要: [ -a FILE ] 如果 FILE 存在则为真。 [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真。 [ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真。 [ -d FILE ] 如果 FILE 存在且是一个目录则为真。 [ -e FILE ] 如果 FILE 存在则为真。 [ -f FILE ] 如果 FILE 存在且是一个普通文件则为真。 [ -g FILE ] 如果 FILE 存在且已经设置了SGID则为真。 [ -h FILE ] 如果 FILE 存在且是一个符号连接则为真。 [ -k FILE ] 如果 FILE 存在且已经设置了粘制位则为真 阅读全文
posted @ 2012-03-02 21:04 PoleStar 阅读(949) 评论(0) 推荐(0) 编辑
摘要: 注意:使用方法:# PS1='自定义内容'注意两边的单引号示例: PS1='(\u@\H \d \t)\$'----------------------------------------------------------------------------------------------------------------PS1:就是用户平时的提示符。PS2:第一行没输完,等待第二行输入的提示符。Linux系统提示符是用系统变量PS1来定义的。一般系统默认的形式是:[username@host 工作目录]$. 用echo $PS1可以得到PS1的值,即P 阅读全文
posted @ 2012-03-02 19:23 PoleStar 阅读(4545) 评论(0) 推荐(0) 编辑
摘要: C语言的著作中,至今还没发现把.h文件的用法写的透彻的。在实际应用中也只能依葫芦画瓢,只知其然不知其所以然,甚是郁闷!闲来无事,便将搜集网络的相关内容整理一下,以便加深自己的理解理论概述:.h中一般放的是同名.c文件中定义的变量、数组、函数的声明,需要让.c外部使用的声明。1)h文件作用: 1.方便开发:包含一些文件需要的共同的常量,结构,类型定义,函数,变量申明; 2. 使函数的作用域从函数声明的位置开始,而不是函数定义的位置(实践总结) 3 .提供接口:对一个软件包来说可以提供一个给外界的接口(例如: stdio.h)。2)h文件里应该有什么:常量,结构,类型定义,函数,变量... 阅读全文
posted @ 2012-02-24 14:41 PoleStar 阅读(11774) 评论(1) 推荐(5) 编辑
摘要: #define _INTSIZEOF(n) ((sizeof(n)+sizeof(int)-1)&~(sizeof(int) - 1) )_INTSIZEOF(n) 整个做的事情就是将 n 的长度化为 int 长度的整数倍。1.~是位取反的意思。 ~(sizeof(int) - 1) )就应该为~(4-1)=~(00000011b)=11111100b,这样任何数& ~(sizeof(int) - 1) )后最后两位肯定为0,就肯定是4的整数倍了。2.(sizeof(n) + sizeof(int) - 1)就是将大于4m但小于等于4(m+1)的数提高到大于等于4(m+1)但小 阅读全文
posted @ 2012-02-23 15:43 PoleStar 阅读(591) 评论(0) 推荐(0) 编辑