linux下基于socket的文件传输程序设计课程设计报告内容摘要:
程,程序员可以用它们来开发 TCP/IP 网络上的应用程序。 要学Inter 上的 TCP/IP网络编程,必须理解 Socket 接口。 关键字 : Socket、文件传输 、多线程 2 2 第一章 课程设计要求 题目名称 : Linux 下基于 socket 的文件传输程序设计 题目类型 : 设计型 课程设计目的 : 实现文件的上传、下载 和管理,了解 socket 编程知识 已知参数和设计要求: 系统分为客户端和服务器端,客服端可以实现文件的上传、下载以及查看服务器下默认目录的文件列表;服务器端可以对文件进行管理,包括上传,下载, 删除文件,重命名等; 实验内容 : 编程实现上述功能。 在内核中添加一 个自己的内存分配和释放的系统调用(可以调用 malloc()和 free()等内存管理函数实现),并在程序中调用; 支持多个客户端同时对服务器中的文件进行操作(多线程); 3 3 第二章 设计概要 功能设计 本项目是为了实现在 Linux 下基于 Socket 进行文件传输的功能。 项目的分析及设计要求如下: 1)整个系统中分为服务器端( Server)和客户端( Client) 2)服务器 端可以对文件进行管理,包括上传,下载,删除文件,重命名等 3) 客服端可以实现文件的上传、下载以及查看服务器下默认目录的文件列 表 4)在程序中应用多线程来实现多个客户端同时对一个服务器端进行请求操作 程序系统功能模块 图 服务器 客户端 接收 client 命令 文件管理 连接服务器 文件传输 列表查看 退出 附加功能 文件传输系统 4 4 功能分析 功能流程图: 图 Server 端 创建 ServerSocket 对象,在某端口提供监听服务 Client 端 等待来自 Client 端的服务请求 接受 Client 端的请求,用返回的 Socket 建立连接 通过向 Socket 中读写数据来与 Client 端通信 关闭 Socket,结束与 Server端的通信 通过向新的 Socket 中读写数据来与 Server 端通信 创建 Socket对象,向 Server的监听端口请求 关闭 Socket,结束与当前Client 的通信,等待其他请求 关闭 ServerSocket 对象,结束监听服务 建立连接 数据通信 拆分连接 5 5 系统操作界面 Server: Client: 6 6 程序主要功能说明 主要功能实现代码如下: : if(fork()==0){ //fork()实现多线程 while(1){ if((read_size=recv(connfd, buf, N, 0))==1) { //perror(recv error.)。 exit(1)。 } if(!strcmp(buf, end)) { break。 } switch (buf[0]) { case 39。 L39。 : ProcessList(connfd)。 printf(打印 list!\n)。 break。 case 39。 G39。 : 7 7 ProcessGet(connfd, buf)。 printf(执行下载命令 !\n)。 break。 case 39。 P39。 : ProcessPut(connfd, buf)。 printf(执行上传命令 !\n)。 break。 } close(connfd)。 //关闭与客户端的连接 } exit(0)。 } else close(connfd)。 //关闭与客户端的连接 } : void ProcessList(int connfd) //目录列表打印,值返回给 client { char buf[N]。 DIR *mydir。 struct dirent *myitem。 mydir = opendir(.)。 while ((myitem = readdir(mydir)) != NULL) { if ((strcmp(myitemd_name, .) == 0) || (strcmp(myitemd_name, ..) == 0)) continue。 strcpy(buf, myitemd_name)。 send(connfd, buf, N, 0)。 } closedir(mydir)。 return。 } : void ProcessGet(int connfd, char buf[]) //client 下载函数,返回 client 请求的文件 { int fd, nbyte。 if ((fd = open(buf+1, O_RDONLY)) 0。linux下基于socket的文件传输程序设计课程设计报告
相关推荐
效果显著,操作简单。 我国的菱镁矿资源丰富,分布广泛,氢氧化镁脱色法具有广东工业大学 毕业设计 6 广阔的发展前景。 [7]研制了一种新型可再生的吸附剂,它是由甘脉和甲醛缩聚形成的一种环状缩聚物。 废水中悬浮物、经絮凝后形成的絮体、生物处理后产生的污泥或生物膜可在重力作用下进行分离,这一过程称为沉淀。 沉淀法只适用于去除 20100 μm及以上的颗粒。 化学处理方法 中和
能力 ◆ 在工业市场 ,食品与饮料 、微电子、制药、汽车等行业 则高度的受 益于“透明就绪 ”中从 IT 系 统贯通到车 间 TCP /IP 以太网 的统一全局 网络架构 ◆ 在建筑市场 ,医疗机构、公用建筑、民用住宅、船舶等行业 在 “透明就绪 ”中使用他们 原有的 TC P/IP 以太网 网络,从而大大的 降低了实施 费用 主要技术 线 MODBU S/TCP 议 是在 MOD BUS
下 8个数据位: 1 1 0 0 0 1 0 1 整个 “1”的数目是 4个。 如果便用了偶校验,帧的奇偶校验位将是 0,便得整个 “1”的个数仍是 4个。 如果便用了奇校验,帧的奇偶校验位将是 1,便得整个 “1”的个数是 5个。 如果没有指定奇偶校验位,传输时就没有校验位,也不进行校验检测。 代替一附加的停止位填充至要传输的字符帧中。 LRC检测 使用 ASCII模式,消息包括了一基于
高浓度中药废水,并进行了中间试验研究。 试验证明,该工艺对难生物降解的高浓度中药有机废水可进行有效的治理,在流量为 3000m3/d,进水浓度为 12020~20200mgCOD/L时, COD总去除率可达 99%以上 [2]。 韩红军等采用微电解 生物接触氧化处理扬州中药厂 的废水,出水水质达到国家一级排放标准。 程汉林、林晓生等采用零价铁强化活性污泥法处理广州某中药厂的高浓度中药废水
Netfilter 组件 Netfilter 组件称为内核空间,它集成在 Linux 的内核中。 Netfilter 是一种内核中用于扩展各种网络服务的结构化底层框架。 Netfilter 的设计思想是生成一个模块结构使之能够比较容易的扩展。 新的特性假如到内核中并不需要重新启动内核。 这样,可以通过简单地构造一个内核模块来实现网络新特性的扩展,给底层网络特性扩展带来了极大的便利
其他系统进行太多的交互 ,所以使用 J2EE 的模式并不能够体现出 J2EE 本身的 优势 ,而 JSP 又是 J2EE 的核心技术之一 ,可以随时升级为 J2EE 程序 ,这里暂时不考虑采用 J2EE,这样只需要在 ASP 和 JSP 中进行选择 .在进行了诸多因素的比较之后 ,最终认为目前这个阶段比较合适的是 JSP,而选择 Struts 架构作为开发的主体框架 ,选用 Hibernate