-
UNIX网络编程:套接字选项(SO_RCVBUF和SO_SNDBUF)
所属栏目:[Unix] 日期:2016-09-26 热度:155
有时候我们需要控制套接字的行为(如修改缓冲区的大小),这个时候我们就要学习套接字选项。 int getsockopt(int sockfd,int level,int optname,void *optval,socklen_t *optlen) int setsockopt(int sockfd,int level,int optname,const void *optval,sockle[详细]
-
UNIX网络编程:shutdown与close函数的区别
所属栏目:[Unix] 日期:2016-09-26 热度:104
假设server和client 已经建立了连接,server调用了close, 发送FIN 段给client(其实不一定会发送FIN段,后面再说),此时server不能再通过socket发送和接收数据,此时client调用read,如果接收到FIN 段会返回0,但client此时还是可以write 给server的,wri[详细]
-
UNIX网络编程:僵尸进程
所属栏目:[Unix] 日期:2016-09-26 热度:127
在fork()/exec()过程中,假设子进程结束时父进程仍存在,而父进程fork()之前既没安装SIGCHLD信号处理函数调用waitpid()等待子进程结束,又没有显式忽略该信号,则子进程成为僵尸进程,无法正常结束,此时即使是root身份kill -9也不能杀死僵尸进程。补救办[详细]
-
UNIX网络编程:I/O复用:select和poll函数
所属栏目:[Unix] 日期:2016-09-26 热度:107
副标题#e# 我们看到TCP客户同时处理两个输入:标准输入和TCP套接字。我们遇到的问题是就在客户阻塞于(标准输入上)fgets调用,服务器进程会被杀死。服务器TCP虽然正确的给客户TCP发送了一个FIN,但是既然客户进程正阻塞于从标准输入读入的过程,它将看不到[详细]
-
UNIX网络编程:TCP回射服务器/客户端程序
所属栏目:[Unix] 日期:2016-09-26 热度:123
副标题#e# 下面通过最简单的客户端/服务器程序的实例来学习socket API。 serv.c 程序的功能是从客户端读取字符然后直接回射回去: #includestdio.h #includesys/types.h #includesys/socket.h #includeunistd.h #includestdlib.h #includeerrno.h #includea[详细]
-
UNIX网络编程:getsockname和getpeername函数
所属栏目:[Unix] 日期:2016-09-26 热度:104
副标题#e# 这两个函数或者返回与某个套接字关联的本地协议地址(getsockname),或者返回与某个套接字关联的外地协议地址即得到对方的地址(getpeername)。 #include sys/socket.h int getsockname(int sockfd,struct sockaddr* localaddr,socklen_t *addr[详细]
-
UNIX网络编程:并发服务器(TCP)
所属栏目:[Unix] 日期:2016-09-26 热度:83
副标题#e# 在迭代服务器中,服务器只能处理一个客户端的请求,如何同时服务多个客户端呢?在未讲到select/poll/epoll等高级IO之前,比较老土的办法是使用fork来实现。 网络服务器通常用fork来同时服务多个客户端,父进程专门负责监听端口,每次accept一个新[详细]
-
UNIX网络编程:基本TCP套接字编程
所属栏目:[Unix] 日期:2016-09-26 热度:124
副标题#e# 一、基于TCP协议的网络程序 下图是基于TCP协议的客户端/服务器程序的一般流程: 服务器调用socket()、bind()、listen()完成初始化后,调用accept()阻塞等待,处于监听端口的状态,客户端调用socket()初始化后,调用connect()发出SYN段并阻塞等待[详细]
-
UNIX网络编程:TCP输出及UDP输出
所属栏目:[Unix] 日期:2016-09-26 热度:141
TCP输出 每一个TCP套接字有一个发送缓冲区,我们可以使用SO_SNDBUF套接字选项来更改该缓冲区的大[详细]
-
UNIX网络编程:网络数据包检测
所属栏目:[Unix] 日期:2016-09-26 热度:168
副标题#e# 网络数据包检测 数据包捕获(sniffer):是指在网络上进行数据收集的行为,需要通过网卡来完成。 三种访问方式: BSD Packet Filter(BPF) SVR4 Datalink Provider Interface(DLPI) linux SOCK_PACKET interface libpcap库 安装: apt-get install[详细]
-
UNIX环境高级编程——TCP/IP网络编程
所属栏目:[Unix] 日期:2016-09-26 热度:202
副标题#e# 常用网络信息检索函数 gethostname() getppername() getsockname() gethostbyname() gethostbyaddr() getprotobyname() getprotobynumber() getservbyname() getservbyport() 网络属性设置 头文件: #include sys/types.h #include sys/socket.h[详细]
-
AIX/LINUX系统中如何查看单个进程在os层面的内存消耗
所属栏目:[Unix] 日期:2016-09-26 热度:75
--如何查看单个进程在os层面的内存消耗 AIX: $ svmon -Pt10 | perl -e 'while(){print if($.==2||$!$s++);$.=0 if(/^-+$/)}' ---- -用这个可以看最大的占用内存的10个进程 ----------------------------------------------------------------------------[详细]
-
AIX系统中检测CPU信息
所属栏目:[Unix] 日期:2016-09-26 热度:149
physical CPU Number Of Processors: 8 [P720:/home/dsg]$prtconf System Model: IBM,8202-E4C Machine Serial Number: 06DBA5R Processor Type: PowerPC_POWER7 Processor Implementation Mode: POWER 7 Processor Version: PV_7_Compat Number Of Proces[详细]
-
如何查看AIX和HP-UX文件系统类型
所属栏目:[Unix] 日期:2016-09-26 热度:200
副标题#e# AIX # uname whoami AIX root # df -g Filesystem GB blocks Free %Used Iused %Iused Mounted on /dev/hd4 2.25 0.14 94% 9425 22% / /dev/hd2 4.62 0.11 98% 89988 75% /usr /dev/hd9var 2.00 1.40 31% 5038 2% /var /dev/hd3 4.00 1.43 65% 10[详细]
-
如何在磁带上备份和恢复AIX系统
所属栏目:[Unix] 日期:2016-09-26 热度:129
备份和恢复是系统管理员经常要做的事情, 主要包括rootvg备份和用户数据备份. 1. 操作系统和系统程序的备份: 将一盘新磁带或无用磁带插入磁带机 #tctl -f /dev/rmt0 rewind #smit mksysb 在备份设备或文件中添入/dev/rmt0后回车. 系统会运行很长时间, 等到[详细]
-
Linux/Unix shell 参数传递到SQL脚本
所属栏目:[Unix] 日期:2016-09-26 热度:125
副标题#e# 在数据库运维的过程中,Shell 脚本在很大程度上为运维提供了极大的便利性。而shell 脚本参数作为变量传递给SQL以及SQL脚本也是DBA经常碰到的情形之一。本文主要讨论了如何将shell脚本的参数传递到SQL脚本之中并执行SQL查询。 1、启动sqlplus时执[详细]
-
Unix系统vmstat命令详解
所属栏目:[Unix] 日期:2016-09-26 热度:109
副标题#e# Virtual Memory Statistics ( vmstat ) 是报告关于进程,虚拟内存,磁盘,CPU活动的一个统计报告。 在一个多CPU系统中,vmstat统计所有个数的CPU的平均输出。为每个进程进行统计。没有参数时,vmstat显示每一行是自从系统启动以后的虚拟内存的[详细]
-
UNIX环境高级编程:网络编程常用函数及结构
所属栏目:[Unix] 日期:2016-09-26 热度:101
副标题#e# #include arpa/inet.h int inet_aton(const char *strptr, struct in_addr *addrptr); //将strptr字符串转换成32位的网络字节序(二进制值--a.b.c.d-32)。 int_addr_t inet_addr(const char *strptr) //功能通上,返回地址。 in_addr addr; addr.[详细]
-
kernel学习之调度器发展史
所属栏目:[Unix] 日期:2016-09-10 热度:198
调度器的主要工作是在所有 RUNNING 进程中选择最合适的一个。作为一个通用操作系统,Linux 调度器将进程分为了三类: 交互进程:此类进程有大量的人机交互,因[详细]
-
kernel学习之进程抢占和切换
所属栏目:[Unix] 日期:2016-09-10 热度:198
抢占时伴随着schedule()的执行。内核提供了一个TIF_NEED_RESCHED标志来表明是否要用schedule()调度一次。 根据抢占发生的时机分为用户抢占和内核抢占。用户抢占[详细]
-
Solaris的网络配置过程
所属栏目:[Unix] 日期:2016-09-10 热度:154
1. ifconfig -a查看接口的名字 -bash-3.00# ifconfig -a lo0: flags=2001000849UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL mtu 8232 index 1 inet 127.0.0.1[详细]
-
topas命令详解
所属栏目:[Unix] 日期:2016-09-10 热度:138
1.AIX系统版本 -bash-3.00$ oslevel 5.3.0.0 2.topas命令 Topas Monitor for host: aix EVENTS/QUEUES FILE/TTY Sun Jan 8 12:51:10 2012 Interval: 2 Cswitch[详细]
-
Unix与Linux的区别和联系
所属栏目:[Unix] 日期:2016-09-10 热度:187
区别和联系 Linux和UNIX的最大的区别是,前者是开发源代码的自由软件,而后者是对源代码实行知识产权保护的传统商业软件。这应该是他们最大的不同,这种不同体[详细]
-
UNIX网络编程:如何使用select函数的TCP和UDP回射服务器程序
所属栏目:[Unix] 日期:2016-09-10 热度:114
服务器程序: #include sys/wait.h #include string.h #include string.h #include errno.h #include stdio.h #include stdlib.h #include sys/types.h #include sys/socket.h #include signal.h #include arpa/inet.h #include sys/select.h #include sys[详细]
-
UNIX网络编程:UDP 中的外出接口的确定
所属栏目:[Unix] 日期:2016-09-10 热度:76
已连接UDP套接字还可用来确定用于特定目的地的外出接口。这是由connect函数应用到UDP套接字时的一个副作用造成的:内核选择本地IP地址。这个本地IP地址通过为目[详细]

浙公网安备 33038102330476号