利用流套接字实现一个简单的远程控制系统


    XX 学 计 算 机 学 院软 件 学 院
    实 验 报 告
    学号: 姓名: 专业:软件学院 班级:09 第 3 周
    课程名称
    信息安全产品开发实践 
    实验课时
    1
    实验项目
    远程控制系统
    实验时间
    2013927
    实验目
     
    流套接字数报套接字回顾
    远程控制系统流程
    实验环境
    X86Windows7VMware90Red Hat Enterprise Linux 50 

    实验容(算法程序步骤方法)
    利流套接字实现简单远程控制系统:
    客户端输入quit客户端程序服务器端程序印退出信息终止程序执行
    客户输入命令客户端命令通流套接字发送客户端服务器执行收命令结果发送客户端显示
    果没客户输入命令服务器发送命令非法信息客户端显示该条信息
    编写实验报告:
    列出程序运行状态截图配文字说明
    独立完成印报告报告语言中文少4页A4封面书写姓名学号


     
    (接)
    实验容(算法程序步骤方法)
    修改代码:




    编译


    运行结果:


    源代码 udpclientc
    *
    *
    *
    * Filename udpclientc
    *
    * Description This program is used to demostrate how to implement a udp rpc control server
    *
    * Version 10
    * Created 2013骞9鏈5鏃16鏃6鍒5绉 * Revision none
    * Compiler gcc
    *
    * Author Gang liang
    * Organization Computer Science College Sichuan University
    *
    *
    *

    #include
    #include
    #include
    #include
    #include

    #define PORT 8888
    #define SIZE 2048


    #include

    *
    * FUNCTION
    * Name print_useage
    * Description
    *
    *


    void print_usage (char* cmd )
    {
    fprintf(stderrUsages ip address\ncmd)
    } * end of function print_useage *
    *
    * FUNCTION
    * Name main
    * Description
    *
    *
    int
    main ( int argc char *argv[] )
    {
    int sockfd
    struct sockaddr_in client
    struct sockaddr_in server
    int len
    int port
    int rvalue
    char buffer[SIZE]
    char cmd[10] * these two vars used to deal with cd command *
    char path[2028]


    init
    sockfd1
    bzero(&clientsizeof(struct sockaddr))
    bzero(&serversizeof(struct sockaddr))
    len1
    rvalue1
    portPORT
    memset(buffer0sizeof(buffer))
    bzero(cmd10)
    bzero(path2048)

    if (2argc)
    {
    print_usage(argv[0])
    exit(1)
    }


    phrase 1 The creation of the socket

    sockfdsocket(AF_INETSOCK_STREAM0)
    if (1sockfd)
    {
    fprintf(stderrerror in creating socket\n)
    exit(1)

    }

    Communation with the serverAttentionClient should send data to the server first

    Set the destination's address
    serversin_familyAF_INET
    serversin_addrs_addrinet_addr(argv[1])
    serversin_porthtons(port)
    if (1connect(sockfd(struct sockaddr*)&serversizeof(server)))
    {
    perror(connect error\n)
    close(sockfd)
    return 1
    }


    while(1)
    {

    fprintf(stderrTCP>)
    fgets(bufferSIZEstdin)


    rvaluewrite(sockfdbufferstrlen(buffer)0)

    if (0strcmp(bufferquit\n)||(0strcmp(bufferQUIT\N)))
    {
    fprintf(stderrquit\n)
    break
    }

    if (0>rvalue)
    {
    fprintf(stderrerror in receiving data\n)
    continue
    }

    sscanf(bufferscmd)

    if ((0strcmp(cdcmd))||(0strcmp(CDcmd)))
    continue



    lensizeof(struct sockaddr)
    rvalueread(sockfdbufferSIZE0)

    if (0 {
    buffer[rvalue]'\0'
    fprintf(stderrs\nbuffer)
    }
    else
    {
    continue

    }



    }



    close(sockfd)




    return EXIT_SUCCESS
    }
    * end of function main *


    Udpserverc

    *
    *
    *
    * Filename udpserverc
    *
    * Description This program is used to demostrate how to implement a udp rpc server
    *
    * Version 10
    * Created 2013骞9鏈4鏃20鏃9鍒2绉 * Revision none
    * Compiler gcc
    *
    * Author Gang Liang
    * Organization Computer Science College Sichuan Universtiy
    *
    *
    *

    #include
    #include
    #include
    #include
    #include

    #include

    #define PORT 8888 *server port *
    #define SIZE 2048 * 2K BUFFER *

    int exec (char* commandchar* result)
    {

    FILE * in
    int len
    char c

    len0

    bzero(resultsizeof(result))

    inpopen(commandr)

    if (NULLin)
    {
    fprintf(stderrerror in create a pipe\n)
    return 1
    }

    while(((cfgetc(in))EOF)&&(len {
    result[len]c
    len++
    }

    result[len]'\0'



    pclose(in)

    if (0len)
    {
    sprintf(results cannot execute\ncommand)
    }
    return len
    }
    * end of function exec *
    *
    * FUNCTION
    * Name main
    * Description
    *
    *

    int main ( int argc char *argv[] )
    {

    int sockfd * socket *
    struct sockaddr_in client * ip address of client *
    struct sockaddr_in server * ip address of server *
    int len
    int port
    int rvalue
    char send_buf[SIZE] * the result of buffer *
    char recv_buf[SIZE] * the command buffer *
    char cmd[10] * these two var used to deal with cd command *
    char path[2048]
    int opt
    int connected

    init
    sockfd1
    bzero(&clientsizeof(struct sockaddr))
    bzero(&serversizeof(struct sockaddr))
    len1
    rvalue1
    bzero(send_bufSIZE)
    bzero(recv_bufSIZE)
    portPORT
    bzero(cmd10)
    bzero(path2048)
    optSO_REUSEADDR
    connected1

    phrase 1 create socket
    sockfdsocket(AF_INETSOCK_STREAM0) * generate the socket *

    if (1sockfd)
    {
    fprintf(stderrerror in creating socket\n)
    exit(1)

    }
    setsockopt(sockfdSOL_SOCKETSO_REUSEADDR&optsizeof(opt))

    phrase 2 bind the socket

    serversin_familyAF_INET
    serversin_porthtons(port)
    serversin_addrs_addrhtonl(INADDR_ANY)

    rvaluebind(sockfd(struct sockaddr*)&serversizeof(struct sockaddr))

    if (1rvalue)
    {
    fprintf(stderrerror in binding socket\n)
    close(sockfd)
    exit(1)

    }

    listen socket
    if (1listen(sockfd10))
    {
    perror(listen socket error\n)
    close(sockfd)
    return 1
    }


    phrase 3 communication with clientAttentionThe client send message to server firstthen the server
    can send message to the clientOtherwise server cannot konw about the client

    while(1)
    {
    lensizeof(struct sockaddr)

    if (1(connectedaccept(sockfd(struct sockaddr*)&client&len)))
    {
    perror(three shakehands error\n)
    close(sockfd)
    return 1
    }
    while(1)
    {
    rvalueread(connectedrecv_bufSIZE)
    if (0>rvalue)
    {
    fprintf(stderrerror in receiving data\n)
    continue
    }
    recv_buf[rvalue1]'\0'



    if (0strcmp(recv_bufquit))
    {
    fprintf(stderrthe client is quit\n)
    close(connected)
    break
    }

    sscanf(recv_bufs scmdpath)
    if ((0strcmp(cdcmd)) ||(0strcmp(CDcmd)))
    {
    chdir(path)
    continue
    }

    fprintf(stderrthe result is \nssend_buf)
    exec(recv_bufsend_buf)


    rvalue1
    rvaluewrite(connectedsend_bufstrlen(send_buf))

    if (0>rvalue)
    {
    fprintf(stderrerror in sending data\n)
    continue

    }
    }
    close(connected)
    }

    phrase 4release the socket
    close(sockfd)

    return EXIT_SUCCESS
    }
    * end of function main *





    数记录
    计算
     
    TCP套接字编程(cont):













    工作原理:
    • 客户端接收户输入命令客户端通套接字命令传送服务器端
    • 服务器收户命令命令进行解析
    • 服务器端调应命令
    • 命令执行结果发送客户端实现远距离控制功



















    (结 果)

     
    功修改代码成功TCP实现远程控制



     
    通实验掌握:
    利流套接字实现简单远程控制系统熟悉流套接字数报套接字编程
    做简单远程控制系统流程

    指导老师评 议
     






    成绩评定: 指导教师签名:

    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 2 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    利用ERP实现全面预算

    利用ERP实现全面预算管理的设想摘要:本文通过了解ERP与全面预算管理的含义,分析出两者融合的可行性,并对利用ERP实现全面预算管理的理论根底、设计以及实际应用进行了探讨关键词:ERP 全...

    6个月前   
    152    0

    谈如何利用远程资源进行有效备课的

    谈如何利用远程资源进行有效备课的备课就是为教学做准备的过程,但备课绝不是一字不漏的备教学过程,它是教师依据课程标准和学生学情,以教材为依托,对课程进行有效把握和生成的过程,现代远程教育为我们提...

    11年前   
    786    0

    利用网络远程控制实习报告

    利用网络远程控制实习报告  实习内容:利用网络远程控制  实习地点:学校3号机房  一、远程控制定义  所谓远程控制,是指管理人员在异地通过计算机网络异地拨号或双方都接入internet等手段...

    8年前   
    439    0

    “一个支部实现一个目标、一个党员完成一个任务”目标汇总

    “一个支部实现一个目标、一个党员完成一个任务”目标汇总  1  1.通过英语六级  2.提升专业成绩 3.提高个人素养  2  提高自身专业素质和道德修养,力求在千军万马的就业大桥上脱颖而出。...

    10年前   
    472    0

    基于Socket通信的远程控制系统设计-毕业论文

    浙江工业大学之江学院毕业设计(论文)                                                       1 绪 论 1.1 远程控制系统概述 ...

    8年前   
    6928    0

    基于物联网的智能家居控制系统设计与实现

    物联网是在信息社会发达的今所衍生的产品,他是基于互联网的模块上,利用射频识别技术、无线网等技术,打造一个联系世界不同物体,不同模块的“Internet of Things”。在这个模块网络中,...

    5年前   
    6138    0

    多功能智能轮椅设计-运动控制系统的设计与实现

     多功能智能轮椅设计—运动控制系统的设计与实现多功能智能轮椅设计-运动控制系统的设计与实现摘 要在现如今智能化高速发展的时代,智能、科技已然成为时代的主题之一,智能产品也被越来越多运用到各行...

    3年前   
    605    0

    利用现代远程教育条件开展教育教学方案

    利用现代远程教育条件开展教育教学方案  一、指导思想  全面贯彻落实党的“十七”大精神和“三个代表”重要思想,切实履行农村中小学现代远程教育工程的学习和应用。开展好农村党员干部现代远程教育工作...

    10年前   
    413    0

    教师远程教育资源利用情况考核制度

    教师远程教育资源利用情况考核制度为切实发挥远程教育资源为教学、为农村、为社会服务的作用,深入开展好远程教育工作,缩小城乡教育差距,实现教育的均衡发展,深入持久地开展好远程教育工作,根据上级文件...

    11个月前   
    209    0

    利用农村远程教育的心得体会

    利用农村远程教育的心得体会  信息技术在迅速改变社会的同时,也给教育以更大的发展空间。微电子技术、通信技术、计算机技术和网络技术是信息技术的核心,它们为教育和学习突破时空的限制,为教育大众化的...

    11年前   
    415    0

    技能培训专题 简单电力网络的潮流计算(一)

    第32章 简单电力网络的潮流计算32.1 输电线路和变压器的电压降落和功率损耗电压降落和功率损耗是潮流计算中的两个重要概念。32.1.1 输电线路的电压降落和功率损耗32.1.1.1 输电线路...

    2年前   
    546    0

    信任很简单初二作文600字

    信任很简单初二作文600字  导语:作文对于在校学生来说,是学习好语文的重要组成部分。我们每次考试得用到作文,它在各级语文考试中,是卷面分最高的题目,因此它的重要性可想而知。下面是优悦小生精心...

    2个月前   
    90    0

    简单300字的实习周记范文

    简单300字的实习周记范文  实习周记一  第一天踏进xx的大门,心里有很多的忐忑不安,不知道迎接我的将是一种什么样的生活。一起进公司的还有9个人,我们将在一起进行统一培训。  公司实行选拔制...

    11年前   
    315    0

    2017年小学简单的毕业感言200字左右

    小学简单的毕业感言200字左右  200字小学毕业感言(一)  1、凤凰花还没开,小学的六年生活就这样结束了。回顾这六年的小学生活是那么精彩,那么美丽,有着欢笑,也有着泪水,并不是我用三言两语...

    6年前   
    388    0

    《利用化学方程式的简单计算》知识总结

    (1)设未知数 ………………设(2)写出化学方程式并配平 ………方(3) 标出有关物质的量:上标相对分子质量,下标已知质量和未知数……标(4) 列比例式,求解 ………比(5) 简明地写出答案 …………答

    2年前   
    322    0

    《利用化学方程式的简单计算》优质课学习心得

    《利用化学方程式的简单计算》优质课学习心得  真不愧是全国特级奖获得者,讲课教师来自四川,该教学设计能充分体现新教学理念。  主要优点有:  一、注重引导学生自主合作、探究学习,倡导学生的主体...

    10年前   
    635    0

    嫩江工商局+《浅谈如何实现工商档案利用价值》+论文

    浅谈如何实现工商档案利用价值 浅谈如何实现工商档案利用价值   摘要:在社会上提高人们对工商档案认识水平,实现工商管理档案的最佳效果是摆在我们面前的重要课题。本文从工商档案的管理、基础设...

    5年前   
    1053    0

    正视现状,科学调控,实现我区水资源的可持续利用—调研报告

     正视现状,科学调控,实现我区水资源的可持续利用—调研报告 水是生命之源。人类生存生活、国民经济、各项事业发展都离不开水。水也是其它物质不可替代的重要资源之一,其现状被世界所关注。2003年世...

    11年前   
    472    0

    利用DirectX技术实现的多媒体播放器

    利用DirectX技术实现的多媒体播放器摘 要: 目前常见的多媒体软件应该说各有特色,但是几乎每一个都存在着不如人意的地方。        本文将介绍一个由本人设计的多媒体播放器。      ...

    9年前   
    415    0

    网络教程 利用三层交换机实现VLAN间通信

    利用三层交换机实现不同VLAN间的通信1、 实验目的 通过三层交换机实现VLAN间互相通信。2、 背景描述假设某企业有2个主要部门:销售部和技术部,其中销售部门的个人计算机系统分散连接...

    3年前   
    567    0

    文档贡献者

    文***品

    贡献于2020-09-15

    下载需要 2 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档