📄 60.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>CTerm非常精华下载</title>
</head>
<body bgcolor="#FFFFFF">
<table border="0" width="100%" cellspacing="0" cellpadding="0" height="577">
<tr><td width="32%" rowspan="3" height="123"><img src="DDl_back.jpg" width="300" height="129" alt="DDl_back.jpg"></td><td width="30%" background="DDl_back2.jpg" height="35"><p align="center"><a href="http://apue.dhs.org"><font face="黑体"><big><big>123</big></big></font></a></td></tr>
<tr>
<td width="68%" background="DDl_back2.jpg" height="44"><big><big><font face="黑体"><p align="center"> ● UNIX网络编程 (BM: clown) </font></big></big></td></tr>
<tr>
<td width="68%" height="44" bgcolor="#000000"><font face="黑体"><big><big><p align="center"></big></big><a href="http://cterm.163.net"><img src="banner.gif" width="400" height="60" alt="banner.gif"border="0"></a></font></td>
</tr>
<tr><td width="100%" colspan="2" height="100" align="center" valign="top"><br><p align="center">[<a href="index.htm">回到开始</a>][<a href="54.htm">上一层</a>][<a href="61.htm">下一篇</a>]
<hr><p align="left"><small>发信人: clown (梧桐叶), 信区: UNP <br>
标 题: unp第四章学习体会 <br>
发信站: UNIX编程 (2001年07月17日19:20:16 星期二), 站内信件 <br>
<br>
现在任务又比较急迫了,看书的时间又少了。而且干刚买了《Linux程序设计 <br>
权威指南》,粗略的看了一下,觉得还不错,因此几本书会交叉的看了。 <br>
<br>
言归正传,第四章主要介绍套接口编程的几个函数,也许这几个函数你已经 <br>
比较熟悉的,但是再看一遍绝对还是会有收获的。 <br>
1)int socket(int family, int type, int protocol); <br>
family中AF_xx和PF_xx是一样的,在一个头文件里面做了宏定义。 <br>
type说明套接口的类型:基于tcp, udp还是原始套接口?在监听方式中 <br>
可能是SOCK_PACKET。 <br>
protocol,一般是ip,宏定义为0。 <br>
2)int connect(...); <br>
学习该函数的时候,终于完整地明白了TCP/IP中RST报文的含义:该端口没有 <br>
提供服务;服务器想取消连接;报文错误。 <br>
2)int bind(...); <br>
客户端一般不调用该函数,若调用该函数则指明了数据报中的源ip。 <br>
服务器一般要调用该函数来指明提供服务的网卡,一般为常值INADDR_ANY, <br>
则该服务器的loopback, eth0, eth1 ...等都提供了套接口服务。 <br>
3)int listen(...); <br>
该函数只有服务器调用,主要指明内核提供的套接口最大连接数。 <br>
注意内核对于某个监听的套接口,维护着两个队列:未完成连接队列 <br>
和已完成连接队列,该函数中的参数指定的是这两个队列长度之和。 <br>
SYN Flooding和DOS攻击就是填充服务器的未完成队列,使服务器无法 <br>
接受正常用的连接。 <br>
4)accept, close, shutdown这几个函数比较容易理解,没有什么好说的。 <br>
5)getsockname, getpeername,这两个函数我以前没怎么注意,看了之后 <br>
发现确实需要。书中举的inetd派生服务器的例子中,提到内核维护着 <br>
一个保存所有打开的文件描述符的链表,在apue中游详细的介绍,而且我 <br>
做的讲座中也详细介绍了该部分,这里就不再介绍了。 <br>
-- <br>
※ 来源:·UNIX编程 www.tiaozhan.com/unixbbs/·[FROM: 202.114.1.60] <br>
</small><hr>
<p align="center">[<a href="index.htm">回到开始</a>][<a href="54.htm">上一层</a>][<a href="61.htm">下一篇</a>]
<p align="center"><a href="http://cterm.163.net">欢迎访问Cterm主页</a></p>
</table>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -