20155226 2017-2018-1 《信息安全系统设计基础》实验三报告

20155226 2017-2018-1 《信息安全系统设计基础》实验三报告

实验内容

任务一

  1. 学习使用Linux命令wc(1)
  2. 基于Linux Socket程序设计实现wc(1)服务器(端口号是你学号的后6位)和客户端
  3. 客户端传一个文本文件给服务器,
    服务器返加文本文件中的单词数
  • 学习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

代码托管

原文地址:https://www.cnblogs.com/20155226thy/p/7853411.html