2017-2018-1 20155214 《信息安全系统设计基础》第13周学习总结
教材学习内容总结
本章主要学习网络编程,重点研究 客户端-服务器编程模型 。本章学习的知识承接了我们之前学习的计算机网络课程,与本学期的 信息安全技术 和 网络安全编程 课程息息相关。对于信息安全系学生而言不可谓不重要。
在本章学习中,重点实现了:
- socket服务器和客户端搭建
- daytime服务器
- echo服务器
- wc服务器
- 服务器迭代
- 服务器并发
- 服务器文件简单加密
第11章习题解答
- 练习题11.1
十六进制地址 | 点分十进制地址 |
---|---|
0x0 | 0.0.0.0 |
0xffffffff | 255.255.255.255 |
0x7f000001 | 127.0.0.1 |
0xcdbca079 | 205.188.160.121 |
0x400c950d | 64.12.149.13 |
0xcdbc9217 | 205.188.146.23 |
- 练习题11.2
编程hex2dd.c,将他的十六进制参数转换为点分十进制字符串并打印出结果。
- 练习题11.3
编程dd2hex.c,将他的点分十进制参数转换为十六进制数并打印出结果。
- 练习题11.4
编写HOSTINFO的一个版本,用inet_pton而不是getnameinfo将每个套接字地址转换成点分十进制地址字符串。
- 练习题11.5
在10.11节中,我们警告过你关于在网络应用中使用标准I/O函数的危险,然而,CGI程序却能没有任何问题地使用标准I/O。为什么?
在子进程中运行的CGI程序不需要显式地关闭他的输入输出流。当子进程终止时,内核会自动关闭所有描述符。
详细总结本章要点
==socket服务器和客户端搭建==
- 如何创建服务器:
在服务器端建立套接字所涉及的步骤如下:
- 创建一个socket可使用socket()的系统调用
- 使用bind()系统调用套接字绑定到一个地址。对于互联网上的服务器套接字,地址包括主机的端口号。
- 连接监听listen()系统调用
- 接受连接使用accept()系统调用。此调用通常会阻塞,直到客户端与服务器连接。
- 发送和接收数据read()和write()系统调用.
- 如何创建客户端:
- 系统调用有所不同的客户端和服务器建立连接,但两者套接字涉及的基本构造。这两个过程分别建立自己的套接字。
- 在客户端建立套接字所涉及的步骤如下:
- 创建一个socket可使用socket()的系统调用
- 套接字连接的服务器地址使用connect()系统调用。
- 发送和接收数据。做到这一点的方法有许多,但最简单的方法是使用read()和write()
==daytime服务器实现==
- 设计内容
- 设计思路
- 运行截图
==echo服务器实现==
- 设计内容
- 设计思路
- 运行截图
==wc服务器实现==
- 设计内容
- 设计思路
- 运行截图
==服务器迭代==
这是最简单形式的服务器的服务进程的客户端和第一个请求,然后完成后,需要从其他客户机的请求。同时,另一个客户端一直等待。
==服务器并发==
这种类型的服务器运行多个进程并发服务请求一次。因为一个进程可能需要更长的时间,但其他客户机又不能等太久。 Unix下写一个并发服务器的方法:
- 多进程
- 多线程
==服务器文件简单加密==
- 设计内容
- 设计思路
- 运行截图
代码托管
结对及互评
本周结对学习情况
- [结对同学学号1](博客链接)
- 结对照片
- 结对学习内容
- XXXX
- XXXX
- ...
其他(感悟、思考等,可选)
xxx
xxx