利用流套接字实现一个简单的远程控制系统.doc_第1页
利用流套接字实现一个简单的远程控制系统.doc_第2页
利用流套接字实现一个简单的远程控制系统.doc_第3页
利用流套接字实现一个简单的远程控制系统.doc_第4页
利用流套接字实现一个简单的远程控制系统.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

四 川 大 学 计 算 机 学 院、软 件 学 院实 验 报 告 学号: 1143111172 姓名:柴承训 专业:软件学院 班级:09 第 3 周 课程名称 信息安全产品开发实践 实验课时1实验项目远程控制系统实验时间2013/9/27实验目的 流套接字与数据报套接字回顾 远程控制系统流程 实验环境 X86,Windows7,VMware9.0,Red Hat Enterprise Linux 5.0 实验内容(算法、程序、步骤和方法) 利用流套接字实现一个简单的远程控制系统:客户端输入“quit”,客户端程序与服务器端程序打印退出信息,终止程序的执行;客户输入命令,客户端将命令通过流套接字发送给客户端,服务器执行收到的命令,并将结果发送到客户端显示;如果没有客户输入的命令,服务器发送命令非法信息,并在客户端显示该条信息。编写实验报告:列出程序运行状态、截图、配文字说明;独立完成,打印报告,报告语言为中文,不少于4页A4,封面上书写姓名、学号。 (接上)实验内容(算法、程序、步骤和方法)修改代码:编译运行结果:源代码: udpclient.c/* * = * * Filename: udpclient.c * * Description: : This program is used to demostrate how to implement a udp rpc control server * * Version: 1.0 * 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(stderr,Usage:%s ip addressn,cmd);/* - end of function print_useage - */* * = FUNCTION = * Name: main * Description: * = */intmain ( int argc, char *argv )int sockfd;struct sockaddr_in client;struct sockaddr_in server;int len;int port;int rvalue;char bufferSIZE;char cmd10; /* these two vars used to deal with cd command */char path2028;/initsockfd=-1;bzero(&client,sizeof(struct sockaddr);bzero(&server,sizeof(struct sockaddr);len=-1;rvalue=-1;port=PORT;memset(buffer,0,sizeof(buffer);bzero(cmd,10);/bzero(path,2048);if (2!=argc)print_usage(argv0);exit(-1);/phrase 1: The creation of the socketsockfd=socket(AF_INET,SOCK_STREAM,0);if (-1=sockfd)fprintf(stderr,error in creating socketn);exit(-1);/Communation with the server.Attention:Client should send data to the server first./Set the destinations addressserver.sin_family=AF_INET;server.sin_addr.s_addr=inet_addr(argv1);server.sin_port=htons(port);if (-1=connect(sockfd,(struct sockaddr*)&server,sizeof(server)perror(connect errorn);close(sockfd);return -1;while(1)fprintf(stderr,TCP);fgets(buffer,SIZE,stdin);rvalue=write(sockfd,buffer,strlen(buffer),0);if (0=strcmp(buffer,quitn)|(0=strcmp(buffer,QUITN)fprintf(stderr,quit.n);break;if (0rvalue)fprintf(stderr,error in receiving datan);continue;sscanf(buffer,%s,cmd);if (0=strcmp(cd,cmd)|(0=strcmp(CD,cmd)continue;len=sizeof(struct sockaddr);rvalue=read(sockfd,buffer,SIZE,0);if (0rvalue)bufferrvalue=0;fprintf(stderr,%sn,buffer);elsecontinue;close(sockfd);return EXIT_SUCCESS;/* - end of function main - */Udpserver.c/* * = * * Filename: udpserver.c * * Description: This program is used to demostrate how to implement a udp rpc server * * Version: 1.0 * 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#definePORT 8888/*server port */#defineSIZE 2048/* 2K BUFFER */int exec (char* command,char* result)FILE * in;int len;char c;len=0;bzero(result,sizeof(result);in=popen(command,r);if (NULL=in)fprintf(stderr,error in create a pipen);return -1;while(c=fgetc(in)!=EOF)&(lenrvalue)fprintf(stderr,error in receiving datan);continue;recv_bufrvalue-1=0;if (0=strcmp(recv_buf,quit)fprintf(stderr,the client is quitn);close(connected);break;sscanf(recv_buf,%s %s,cmd,path);if (0=strcmp(cd,cmd) |(0=strcmp(CD,cmd)chdir(path);continue;fprintf(stderr,the result is n%s,send_buf);exec(recv_buf,send_buf);rvalue=-1;rvalue=write(connected,send_buf,strlen(send_buf);if (0rvalue)fprintf(stderr,error in sending datan);continue;close(connected);/phrase 4:release the socketclose(sockfd);return EXIT_SUCCESS;/* - end of function main - */数据记录和计算 TCP套接字编程(cont.):工作原理: 客户端接收用户输入的命令,客户端通过套

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论