datasheet
超过460,000+ 应用技术资源下载
pdf

Linux网络编程.pdf

  • 1星
  • 日期: 2013-06-06
  • 大小: 3.25MB
  • 所需积分:1分
  • 下载次数:4
  • favicon收藏
  • rep举报
  • 分享
  • free评论
标签: TIlinux网络linux网络编程网络编程网络

第一章 概论...... 1

1.1 网络的历史... 1

1.2 OSI 模型.......3

1.3 Internet 体系模型..4

1.4 客户/服务器模型...5

1.4 UNIX 的历史.......7

1.4.1 Unix 诞生前的故事 .....7

1.4.2 UNIX 的诞生......8

1.4.3 1979 – UNIX 第七版. 10

1.4.4 UNIX 仅仅是历史吗?. 11

1.5 Linux 的发展...... 11

1.5.1 Linux 的发展历史...... 12

1.5.2 什么叫 GNU?.. 12

1.5.3 Linux 的特色.... 13

1.5.4 硬件需求... 14

1.5.5 Linux 可用的软件..... 14

1.5.6 为什么选择 Linux ? 15

1.6 Linux 和 Unix 的发展 15

第二章 UNIX/Linux 模型...17

2.1 UNIX/Linux 基本结构...17

2.2 输入和输出..19

2.2.1 UNIX/Linux 文件系统简介..19

2.2.2 流和标准I/O 库..20

2.3 进程....21

第三章 进程控制 ......22

3.1 进程的建立与运行.......22

3.1.1 进程的概念22

3.1.2 进程的建立22

3.1.3 进程的运行24

3.1.4 数据和文件描述符的继承...29

3.2 进程的控制操作...31

3.2.1 进程的终止31

3.2.2 进程的同步32

3.2.3 进程终止的特殊情况..33

3.2.4 进程控制的实例.33

3.3 进程的属性..38

3.3.1 进程标识符38

3.3.2 进程的组标识符.39

3.3.3 进程环境....40

3.3.4 进程的当前目录.42

3.3.5 进程的有效标识符......43

3.3.6 进程的资源44

3.3.7 进程的优先级.....45

3.4 守护进程.....46

3.4.1 简介...46

3.4.2 守护进程的启动46

3.4.3 守护进程的错误输出..46

3.4.4 守护进程的建立.48

3.5 本章小结.....49

第四章 进程间通信...50

4.1 进程间通信的一些基本概念.50

4.2 信号....50

4.2.1 信号的处理52

4.2.2 信号与系统调用的关系.......54

4.2.3 信号的复位55

4.2.4 在进程间发送信号......56

4.2.5 系统调用 alarm()和pause()..58

4.2.6 系统调用setjmp()和 longjmp().....62

4.3 管道....63

4.3.1 用 C 来建立、使用管道......65

4.3.2 需要注意的问题.72

4.4 有名管道.....72

4.4.1 有名管道的创建.72

4.4.2 有名管道的I/O 使用...73

4.4.3 未提到的关于有名管道的一些注意.75

4.5 文件和记录锁定...75

4.5.1 实例程序及其说明......75

4.5.2 锁定中的几个概念......78

4.5.3 System V 的咨询锁定..78

4.5.4 BSD 的咨询式锁定.....79

4.5.5 前面两种锁定方式的比较...81

4.5.6 Linux 的其它上锁技术81

4.6 System V IPC .......84

4.6.1 ipcs 命令....85

4.6.2 ipcrm 命令..86

4.7 消息队列 (Message Queues ).......86

4.7.1 有关的数据结构.86

4.7.2 有关的函数89

4.7.3 消息队列实例——msgtool,一个交互式的消息队列使用工具..94

4.8 信号量(Semaphores) .....97

4.8.1 有关的数据结构.98

4.8.2 有关的函数99

4.8.3 信号量的实例——semtool,交互式的信号量使用工具... 103

4.9 共享内存(Shared Memory) .. 109

4.9.1 有关的数据结构....... 109

4.9.2 有关的函数...... 110

4.9.3 共享内存应用举例——shmtool,交互式的共享内存使用工具... 112

4.9.4 共享内存与信号量的结合使用.. 114

第五章 通信协议简介 ..... 120

5.1 引言.. 120

5.2 XNS (Xerox Network Systems )概述.. 120

5.2.1 XNS 分层结构.. 120

5.3 IPX/SPX 协议概述.... 122

5.3.1 网际包交换 (IPX ). 122

5.3.2 排序包交换 (SPX). 124

5.4 Net BIOS 概述.... 124

5.5 Apple Talk 概述.. 125

5.6 TCP/IP 概述....... 126

5.6.1 TCP/IP 结构模型...... 126

5.6.2 Internet 协议 (IP )... 127

5.6.3 传输控制协议 (TCP )..... 132

5.6.4 用户数据报文协议.... 134

5.7 小结.. 135

第六章 Berkeley 套接字. 136

6.1 引言. 136

6.2 概述. 136

6.2.1 Socket 的历史.. 136

6.2.2 Socket 的功能.. 136

6.2.3 套接字的三种类型... 138

6.3 Linux 支配的网络协议....... 141

6.3.1 什么是TCP/IP? ....... 141

6.4 套接字地址....... 142

6.4.1 什么是Socket?...... 142

6.4.2 Socket 描述符.. 142

6.4.3 一个套接字是怎样在网络上传输数据的?.... 143

6.5 套接字的一些基本知识..... 144

6.5.1 基本结构. 144

6.5.2 基本转换函数.. 145

6.6 基本套接字调用 147

6.6.1 socket() 函数... 147

6.6.2 bind() 函数..... 148

6.6.3 connect()函数.. 150

6.6.4 listen() 函数.... 151

6.6.5 accept()函数.... 152

6.6.6 send()、recv() 函数... 154

6.6.7 sendto() 和recvfrom() 函数..... 155

6.6.8 close()和shutdown()函数.. 156

6.6.9 setsockopt() 和 getsockopt() 函数. 157

6.6.10 getpeername()函数.. 157

6.6.11 gethostname()函数.. 158

6.7 DNS 的操作...... 158

6.7.1 理解 DNS 158

6.7.2 和 DNS 有关的函数和结构...... 158

6.7.3 DNS 例程 159

6.8 套接字的Client/Server 结构实现的例子.. 160

6.8.1 简单的流服务器...... 161

6.8.2 简单的流式套接字客户端程序. 163

6.8.3 数据报套接字例程 (DatagramSockets )....... 165

6.9 保留端口.. 169

6.9.1 简介 169

6.9.2 保留端口. 170

6.10 五种I/O 模式..... 179

6.10.1 阻塞I/O 模式 179

6.10.2 非阻塞模式I/O ...... 180

6.10.3 I/O 多路复用. 181

6.10.4 信号驱动I/O 模式 . 182

6.10.5 异步I/O 模式 185

6.10.6 几种I/O 模式的比较...... 186

6.10.7 fcntl()函数..... 186

6.10.8 套接字选择项select()函数...... 187

6.11 带外数据. 190

6.11.1 TCP 的带外数据.... 190

6.11.2 OOB 传输套接字例程 (服务器代码Server.c)... 193

6.11.3 OOB 传输套接字例程 (客户端代码Client.c).... 196

6.11.4 编译例子....... 199

6.12 使用Inetd (Internet 超级服务器)... 199

6.12.1 简介...... 199

6.12.2 一个简单的 inetd 使用的服务器程序hello inet service .. 199

6.12.3 /etc/services 和 /etc/inetd.conf 文件..... 200

6.12.4 一个复杂一些的 inetd 服务器程序...... 201

6.12.5 一个更加复杂的 inetd 服务器程序...... 203

6.12.6 程序必须遵守的安全性准则... 205

6.12.7 小结...... 205

6.13 本章总结 205

第七章 网络安全性.206

7.1 网络安全简介....206

7.1.1 网络安全的重要性....206

7.1.2 信息系统安全的脆弱性.....207

7.2 Linux 网络不安全的因素....209

7.3 Linux 程序员安全....... 211

7.3.1 系统子程序......212

7.3.2 标准 C 函数库...214

7.3.3 书写安全的 C程序....216

7.3.4 SUID/SGID 程序指导准则..217

7.3.5 root 程序的设计218

7.4 小结..219

第八章 Ping 例程...220

8.1 Ping 命令简介....220

8.2 Ping 的基本原理.220

8.3 小结..221

第九章 tftp 例程.....222

9.1 tftp 协议简介......222

9.2 tftp 的使用.222

9.3 tftp 的原理.223

9.3 tftp 的基本结构..223

9.4 小节..225

第十章 远程命令执行 .....226

10.1 引言226

10.2 rcmd 函数和rshd 服务器...227

10.3 rexec 函数和rexecd 服务器.......233

第十一章 远程注册.235

11.1 简介.235

11.2 终端行律和伪终端....235

11.3 终端方式字和控制终端.....239

11.4 rlogin 概述242

11.5 窗口环境..242

11.6 流控制与伪终端方式字.....243

11.7 rlogin 客户程序.245

11.8 rlogin 服务器....246

第十二章 远程过程调用..249

12.1 引言249

12.2 远程过程调用模型 ...249

12.3 传统过程调用和远程过程调用的比较 ...250

12.4 远程过程调用的定义252

12.5 远程过程调用的有关问题.252

12.5.1 远程过程调用传送协议...253

12.5.2 Sun RPC.......254

12.5.3 Xerox Courier254

12.5.4 Apollo RPC....255

12.6 stub 过程简介...256

12.7 rpcgen 简介......256

12.8 分布式程序生成的例子....257

12.8.1 我们如何能够构造出一个分布式应用程序...257

12.9 小结283

第十三章 远程磁带的访问 ......284

13.1 简介284

13.2 Linux 磁带驱动器的处理..285

13.3 rmt 协议...285

13.4 rmt 服务器设计分析.286

第十四章 WWW 上 HTTP 协议...... 290

14.1 引言 290

14.2 HTTP 客户请求....... 290

14.2.1 客户端.. 290

14.2.2 服务器端....... 290

14.2.3 Web 请求简介 291

14.2.4 HTTP – HyperText Transfer Protocol 超文本传输协议 ... 295

14.3 Web 编程 297

14.4 小结....... 301

附录A 有关网络通信的服务和网络库函数.......302

附录B Vi 使用简介.319

B.1 Vi 基本观念.......319

B.1.1 进入与离开......319

B.1.2 Vi 输入模式 .....319

B.2 Vi 基本编辑.......320

B.2.1 删除与修改......320

B.3 Vi 进阶应用.......320

B.3.1 移动光标.320

B.3.2 进阶编辑命令 ..322

B.3.3 文件命令.322

附录C Linux 下 C 语言使用与调试简介..324

C.1 C 语言编程 .......324

C.2 什么是 C? .324

C.3 GNU C 编译器...324

C.3.1 使用 GCC 324

C.3.2 GCC 选项325

C.3.3 优化选项.325

C.3.4 调试和剖析选项.......325

C.3.5 用 gdb 调试 GCC 程序......326

C.4 另外的 C 编程工具....330

C.4.1 Xxgdb......330

C.4.2 Calls 331

C.4.3 cproto ......332

C.4.4 Indent ......333

C.4.5 Gprof.......334

C.4.6 f2c 和p2c 335

附录D Ping 源码....336

附录E TFTP 服务器程序源码.362

更多简介内容

评论

下载专区


TI 参考设计资源库

工业电子 汽车电子 个人电子
$(function(){ var appid = $(".select li a").data("channel"); $(".select li a").click(function(){ var appid = $(this).data("channel"); $('.select dt').html($(this).html()); $('#channel').val(appid); }) })