20155226 2017-2018-1 《信息安全系统设计基础》实验三报告
20155226 2017-2018-1 《信息安全系统设计基础》实验三报告
实验内容
任务一
- 学习使用Linux命令wc(1)
- 基于Linux Socket程序设计实现wc(1)服务器(端口号是你学号的后6位)和客户端
- 客户端传一个文本文件给服务器,
服务器返加文本文件中的单词数
- 学习Linux命令wc
为了正确实现统计单词个数的功能,找到其与wc命令的关系,先用man 1 wc
查看wc命令的manpages:
- wc指令功能:统计指定文件中的字节数、字数、行数,并将统计结果显示输出。
- wc指令格式:wc [选项] 文件...
- wc指令描述:其中word字长是由空格分隔的非零长度序列。
- wc命令参数:
- -c 统计字节数。
- -l 统计行数。
- -m 统计字符数。这个标志不能与 -c 标志一起使用。
- -w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
- -L 打印最长行的长度。
- mywc实现功能
- 文件传输功能
实现文件传输功能之前,首先要实现客户端和服务器的通信,结合我们在网络安全编程基础中学习的内容,我们知道客户端和服务器的通信过程如下:
客户端:socket()→bind()→connect()→send()→recv()→close()
服务器:socket()→bind()→accept()→recv()→send()→close()
- 截图
任务二
-
使用多线程实现wc服务器并使用同步互斥机制保证计数正确
-
截图
实验中的问题及解决过程
- 编译时出现
error:ld returned 1 exit status
解决方法:gcc -o xxx xxx.c -pthread