目录




第1章绪论1
1.1TCP/IP协议简介1
1.2网络编程的重要术语3
1.2.1套接字及其类型3
1.2.2网间进程通信的标识4
1.2.3客户机/服务器模式5
1.3C#网络编程概述7
1.3.1常用的网络组件7
1.3.2寻找IP地址的类和方法8
1.3.3数据流的类型与应用9
1.3.4多线程技术12
1.3.5Windows API函数调用14
1.4套接字编程原理16
1.4.1面向连接的套接字调用流程16
1.4.2无连接套接字调用流程16
1.4.3Socket类的基本使用18
1.4.4套接字的简单应用实例22
小结23
实验项目23
第2章主机扫描程序设计25
2.1活动主机探测技术25
2.1.1ICMP协议介绍26
2.1.2基于ICMP的探测原理28
2.1.3活动主机探测程序设计29
2.2端口扫描技术35
2.2.1端口扫描器35
2.2.2端口扫描技术分类36
2.3TCP全连接扫描程序设计40
2.3.1流程设计40
2.3.2程序实现40
2.4高级端口扫描程序设计44
2.4.1界面设计44
2.4.2程序实现45
2.5网站可达性测量程序设计57
2.5.1系统设计思路57
2.5.2数据库设计58
2.5.3程序实现59
小结70
实验项目70
第3章串口通信程序设计72
3.1串口通信基本原理和应用方法72
3.1.1串口通信原理72
3.1.2串口通信仿真设计方法76
3.2串口通信编程类介绍77
3.2.1SerialPort类介绍78
3.2.2SerialPort的使用79
3.2.3C# SerialPort运行方式 79
3.3串口通信编程实例80
3.3.1串口通信参数设置80
3.3.2主程序设计82
3.3.3串口通信程序测试87
小结88
实验项目88
第4章基于TCP协议的程序设计89
4.1TCP协议介绍89
4.1.1TCP数据包格式90
4.1.2TCP协议的通信特点90
4.1.3TCP的常见端口91
4.2阻塞/非阻塞模式及其应用91
4.2.1典型的阻塞模式91
4.2.2阻塞模式的特点92
4.2.3阻塞模式的效率提升方法93
4.2.4非阻塞模式及其应用94
4.3同步套接字编程技术95
4.3.1服务器的程序设计95
4.3.2客户机的程序设计100
4.4异步套接字编程技术103
4.4.1客户机发出连接请求104
4.4.2服务器接收连接请求104
4.4.3服务器发送和接收数据105
4.5基于TcpClient类和TcpListener类的编程106
4.5.1TcpClient类的使用方法107
4.5.2TcpListener类的使用方法108
4.6网络游戏程序设计109
小结120
实验项目121
第5章基于UDP协议的程序设计122
5.1UDP协议介绍122
5.1.1UDP数据包格式123
5.1.2UDP协议的主要特性123
5.2使用UdpClient类进行编程124
5.2.1UdpClient类的使用方法124
5.2.2UdpClient类的应用实例126
5.3网络广播程序设计128
5.3.1广播程序设计示例129
5.3.2套接字选项设置方法130
5.4多播程序设计132
5.4.1多播地址132
5.4.2Internet组管理协议IGMP133
5.4.3多播编程方法134
5.4.4多播编程实例136
小结139
实验项目139
第6章网络抓包程序设计141
6.1网络抓包软件体系结构分析141
6.1.1网络抓包技术分析141
6.1.2WinPcap的体系结构142
6.2基于WinPcap的抓包程序设计143
6.2.1WinPcap编程基础143
6.2.2WinPcap应用实例147
6.3基于SharpPcap的抓包程序设计153
6.3.1SharpPcap应用入门153
6.3.2常用数据结构和函数154
6.4基于原始套接字的抓包程序设计157
6.4.1设计实例说明157
6.4.2关键代码分析157
小结162
实验项目162
第7章木马程序设计164
7.1木马工作原理164
7.1.1木马系统的组成165
7.1.2木马的功能和特征165
7.1.3木马的传播与运行166
7.2木马程序的常规设计167
7.2.1功能设计167
7.2.2流程图设计167
7.2.3命令规则设计表167
7.2.4文件操控模块流程169
7.2.5运行界面及说明169
7.2.6主要程序说明171
7.3远程屏幕监视技术175
7.3.1屏幕捕获过程解析175
7.3.2屏幕捕获程序设计177
7.3.3基于远程调用信道的远程屏幕监视程序设计181
7.4基于TCP协议的远程屏幕监视程序设计190
7.4.1控制端190
7.4.2客户端192
7.5键盘鼠标控制程序设计195
7.5.1键盘鼠标控制方法195
7.5.2键盘钩子说明195
7.5.3键盘鼠标的网络控制程序设计197
小结203
实验项目203
第8章IP音频网络通信程序设计205
8.1音频编程方法概述205
8.2基于多媒体控件的音频播放程序设计206
8.3DirectX组件的工作原理208
8.3.1DirectX简介208
8.3.2DirectSound简介210
8.3.3声音的播放过程211
8.4基于DirectX组件的IP语音网络程序设计212
8.4.1利用DirectX组件实现音频播放212
8.4.2利用DirectX组件实现音频采集213
8.4.3基于DirectX组件的IP电话程序设计221
8.5基于低级音频函数的IP电话程序设计229
8.5.1低级音频函数的调用方法229
8.5.2利用低级音频函数实现音频采集与播放233
8.5.3利用低级音频函数实现语音通信程序设计241
小结243
实验项目244
第9章网络视频传输程序设计245
9.1视频编码技术245
9.1.1视频编码分类245
9.1.2视频格式转换248
9.2基于VFW的视频采集与存储249
9.2.1VFW介绍249
9.2.2视频数据处理技术250
9.2.3视频监控程序设计254
9.3基于VFW的视频传输257
9.3.1视频传输流程257
9.3.2视频发送端程序设计259
9.3.3视频接收端程序设计262
小结265
实验项目265
第10章Email服务程序设计266
10.1概述266
10.1.1工作原理266
10.1.2相关的协议268
10.2SMTP协议编程269
10.2.1SMTP的指令与响应码269
10.2.2Email的组成270
10.2.3ESMTP的工作流程271
10.2.4ESMTP协议编程实例272
10.3POP3协议编程276
10.3.1POP3的工作流程276
10.3.2POP3协议编程概述278
10.4利用SmtpMail类发送Email283
10.4.1System.Web.Mail介绍283
10.4.2处理Email信息及附件285
10.4.3Email发送方法286
10.5利用JMail类收发Email287
10.5.1JMail组件的特点287
10.5.2JMail组件的主要参数与使用方法287
10.5.3基于JMail组件的Email发送编程290
10.5.4基于JMail组件的Email接收编程291
小结293
实验项目293
第11章FTP服务程序设计295
11.1FTP工作原理295
11.1.1FTP服务的工作原理295
11.1.2FTP的传输模式296
11.1.3FTP的登录方式297
11.2FTP协议规范297
11.2.1FTP命令297
11.2.2FTP响应码298
11.2.3FTP命令和响应码的应用方法300
11.3FTP协议的两种工作模式301
11.3.1FTP PORT模式(主动模式)301
11.3.2FTP PASV模式(被动模式)302
11.3.3两种模式的比较303
11.4基于Socket类的FTP程序设计303
11.5基于TcpClient类的FTP程序设计321
11.5.1发送与接收数据的方法321
11.5.2服务器程序323
11.5.3客户机程序324
小结328
实验项目328
第12章网络信息加密传输程序设计330
12.1数据加密模型330
12.1.1数据加密工作模型331
12.1.2对称加密模型331
12.1.3非对称加密模型332
12.1.4数字签名模型333
12.2对称加密程序设计335
12.2.1对称加密算法335
12.2.2基于流的加密解密方法336
12.2.3对称加密程序设计实例339
12.3非对称加密程序设计342
12.4网络信息加密传输程序设计350
12.4.1服务器的实现350
12.4.2客户机的实现358
小结365
实验项目365
第13章网络信息隐藏通信程序设计366
13.1LSB信息隐藏方法366
13.2基于LSB的文件隐藏传输程序设计368
13.2.1设计思路368
13.2.2信息同步技术369
13.2.3LSB的改进算法设计370
13.2.4主要代码实现370
13.3IP语音隐秘通信程序设计377
13.3.1设计思路377
13.3.2发送端关键代码378
13.3.3接收端关键代码380
13.4网页信息隐藏程序设计382
13.4.1网页入侵检测的工作原理382
13.4.2网页入侵检测系统的设计382
13.4.3网页入侵检测系统的实现384
小结391
实验项目391
参考文献392