• 2017-2018-1 20155313 《信息安全系统设计基础》第八周课堂测试


    2017-2018-1 20155313 《信息安全系统设计基础》第八周课堂测试

    课上测试补交

    第八周测试-1:

    参考 http://www.cnblogs.com/rocedu/p/6766748.html#SECCLA 在Linux下完成“求命令行传入整数参数的和”

    测试代码传入自己的8位学号

    上方提交代码

    附件提交运行测试截图

    解决方案:

    命令行的参数通过*argv[]传进来。

    代码如下:

    #include <stdio.h>
     int main(int argc,char *argv[]){
               int sum=0,i=0;
               for(i=1;i<argc;i++){
                       sum+=atoi(argv[i]);
               }
               printf("%d
    ",sum);
       }
    
    

    运行截图:


    第八周测试-2:

    把第一个练习中的代码在X86-64(Ubuntu)中反汇编,给出汇编代码和机器码的截图

    把X86-64汇编翻译成Y86-64汇编,并给出相应机器码的截图(使用附件中的Y86-64模拟器)

    解决方案:

    gcc -E main.c -o main.i 预处理
    gcc -S main.i -o main.s 转换成汇编代码
    

    使用以上两个命令将我的第一个测试的代码转换成x86-64汇编代码。
    代码截图:

    测试要求自己将x86-64翻译成y86-64代码,但是我实在不会,书自己看不懂,网上也没有相关知识点,问同学也没有会的,所以就没有做,但是没有自暴自弃也没有怨天尤人把自己会的都做了。

    然后根据老师给的y86-64编译器的教程安装。

    然后使用压缩包里已经有的Makefile将asum.ys转换成asum.yo。

    使用命令cat asum.yo来查看机械码。机械码截图:


    第八周测试-3

    基于socket 使用教材的csapp.h csapp.c,实现daytime(13)服务器(端口我们使用13+后三位学号)和客户端
    服务器响应消息格式是

    客户端IP:XXXX
    服务器实现者学号:XXXXXXXX
    当前时间: XX:XX:XX

    上方提交代码
    提交一个客户端至少查询三次时间的截图测试截图
    提交至少两个客户端查询时间的截图测试截图

    解决方案:

    csapp.hcsapp.c文件录入虚拟机中。

    再基于socket编写服务器端代码echoserveri.c和客户端代码echoclient.c

    然后使用命令gcc -o xxx xxx.c编译两个代码。

    接着分别用两个终端打开服务器端和客户端两个可执行文件。

    然后就会显示客户端与服务器端成功连接。
    运行截图:

    最后在客户端输入一串信息,然后服务器端会显示收到多少字节的信息。
    运行截图:

    测试中出现的问题与解决方案

    问题1:

    在编译客户端和服务器端代码的时候一直显示编译不成功,但是代码确实没有问题。

    解决方案1:

    原来使用的是gcc -o xxx xxx.c命令编译客户端和服务器端就会出现编译不成功的问题,但是在命令后面添加-lpthread这个参数以后就可以编译成功了。

    错误截图:

    正确截图:

  • 相关阅读:
    Django(03):Django 创建第一个项目
    Django(02):Django安装
    Django(01):Django简介
    对程序员来说,看透生死远远没有操作0和1那么简单
    一个中年程序员遇到突发情况的一些胡言乱语
    gradle查看项目属性列表
    有道云笔记到简书的迁移工具
    pygame.mixer.Channel--音频通道
    pygame.mixer.Sound音频
    pygame--图像变换
  • 原文地址:https://www.cnblogs.com/bonsai/p/7820547.html
Copyright © 2020-2023  润新知