⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 60.htm

📁 unix高级编程原吗
💻 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 + -