![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
UNP
Runnyu
这个作者很懒,什么都没留下…
展开
-
UNP学习笔记(第十三章 守护进程和inetd超级服务器)
关于守护进程可以查看apue的笔记 http://www.cnblogs.com/runnyu/p/4645046.html daemon_init函数下面给出名为daemon_init函数,通过调用它(通常从服务器程序中),我们能够把一个普通进程转变为守护进程 1 #include "unp.h" 2 #include 3 4 #defi原创 2015-08-12 20:29:57 · 554 阅读 · 0 评论 -
UNP学习笔记(第十六章 非阻塞I/O)
套接字的默认状态时阻塞的可能阻塞的套接字调用可分为以下4类:1.输入操作,包括read、readv、recv、recvfrom和recvmsg。2.输入操作,包括write、writev、send、sendto和sendmsg。3.接受外来连接,即accept函数。4.发起外出连接,即用于TCP的connect函数(该函数一直要等到客户收到对于自己的SYN的ACK为止才返回)原创 2015-08-12 20:30:09 · 301 阅读 · 0 评论 -
UNP学习笔记(第二十六章 线程)
线程有时称为轻权进程(lightweight process)同一进程内的所有线程共享相同的全局内存。这使得线程之间易于共享信息,然后这样也会带来同步的问题同一进程内的所有线程处理共享全局变量外还共享:1.进程指令2.大多数数据3.打开的文件(即描述符)4.信号处理函数和信号处置5.当前工作目录6.用户ID和组ID不过每个线程有各自的:1.线程ID2.寄原创 2015-08-12 20:30:56 · 342 阅读 · 0 评论 -
UNP学习笔记(第二章:传输层)
本章的焦点是传输层,包括TCP、UDP和SCTP。绝大多数客户/服务器网络应用使用TCP或UDP。SCTP是一个较新的协议。UDP是一个简单的、不可靠的数据报协议。而TCP是一个复杂、可靠的字节流协议。这里重点放在TCP中。 用户数据报协议(UNP)应用程序往UDP套接字写入一个消息,该消息随后被封装到一个UDP数据报,该UDP数据报进而又被封装到一个IP数据报,然后原创 2015-08-12 20:29:02 · 297 阅读 · 0 评论 -
UNP学习笔记(第十一章 名字与地址转换)
域名系统域名系统(Domain Name System,DNS)主要用于主机名字与IP地址之间的映射。主机名既可以是一个简单得名字,如solaris,也可以是一个全限定域名,如solaris.unpbook.com。 资源记录DNS中的条目称为资源记录(resource record,RR) A记录把一个主机名映射成一个32位的IPv4的地址。AAAA记录把一个原创 2015-08-12 20:29:54 · 393 阅读 · 0 评论 -
UNP学习笔记(第四章 基本TCP套接字编程)
本章讲解编写一个完整的TCP客户/服务器程序所需要的基本套接字函数。 socket函数#include int socket(int family,int type,int protocol); //返回:成功则为非负描述符,若出错则为-1family参数指明协议族,它是如下某个常值type参数指明套接字类型,它是如下某个常值原创 2015-08-12 20:29:07 · 408 阅读 · 0 评论 -
UNP学习笔记(第八章 基本UDP套接字编程)
UDP应用程序客户不与服务器建立连接,而是只管使用sendto函数给服务器发送数据报,其中必须指定目的地的地址作为参数。下图给出典型的UDP客户/服务器程序的函数调用。 recvfrom和sendto函数这两个函数类似于标准的read和write函数,不过需要3个额外的参数#include ssize_t recvfrom(int sockfd,原创 2015-08-12 20:29:50 · 442 阅读 · 0 评论 -
UNP学习笔记(第七章 套接字选项)
有多种方法获取和设置影响套接字的选项:1.getsockopt和setsockopt函数2.fcntl函数3.ioctl函数 getsockopt和setsockopt函数这两个函数仅用于套接字#include int getsockopt(int sockfd,int level,int option,void *restrict optval,s原创 2015-08-12 20:29:18 · 319 阅读 · 0 评论 -
UNP学习笔记(第十五章 UNIX域协议)
UNIX域协议是在单个主机上执行客户/服务器通信的一种方法使用UNIX域套接字有以下3个理由:1.UNIX域套接字往往比通信两端位于同一个主机的TCP套接字快出一倍2.UNIX域套接字可用于在同一个主机上的不同进程之间传递描述符3.UNIX域套接字较新的实现把客户的凭证提供给服务器,从而能够提供额外的安全检查措施UNIX域中用于标识客户和服务器的协议地址是普通文件系统的路径名。原创 2015-08-12 20:30:06 · 273 阅读 · 0 评论 -
UNP学习笔记(第十四章 高级I/O函数)
本章讨论我们笼统地归为“高级I/O”的各个函数和技术 套接字超时有3种方法在涉及套接字的I/O操作上设置超时1.调用alarm,它在指定超时时期满时产生SIGALRM信号2.在select中阻塞等待I/O(select有内置的时间限制),以此代替直接阻塞在read或write调用上3.使用较新的SO_RCVTIMEO和SO_SNDTIMEO套接字选项。 使用SIGA原创 2015-08-12 20:30:04 · 343 阅读 · 0 评论 -
UNP学习笔记(第七章 套接字选项)
有多种方法获取和设置影响套接字的选项:1.getsockopt和setsockopt函数2.fcntl函数3.ioctl函数 getsockopt和setsockopt函数这两个函数仅用于套接字#include int getsockopt(int sockfd,int level,int option,void *restrict optval,s原创 2015-08-12 20:29:47 · 296 阅读 · 0 评论 -
UNP学习笔记(第一章 简介)
环境搭建1.下载解压unpv13e.tar.gz2.进入目录执行./configurecd lib //进入lib目录make //执行make命令3.将生成的libunp.a静态库复制到/usr/lib/和/usr/lib64/中 cd .. //返回unpv13e目录sudo cp libunp.a /usr/lib sudo cp li原创 2015-08-12 20:28:57 · 380 阅读 · 0 评论