您当前的位置:首页>论文资料>基于多线程的网络文件传输工具的改进

基于多线程的网络文件传输工具的改进

资料类别:论文资料

文档格式:PDF电子版

文件大小:196.84 KB

资料语言:中文

更新时间:2024-12-20 10:31:50



推荐标签:

内容简介

基于多线程的网络文件传输工具的改进 款学车与盛用
应用研究
基于多线程的网络文件传输工具的改进
高芳
(国家新阴出版广电总局七二五台山西灵山031308)
摘要:随着计算机技术的运监发展,人们通过inteme进行学习,工作,在此过程中,文件传输成为了最需用的服务之一。而多线程文件传输可以有效地提高文件的传输速度和传赖效率。本次设计的文件传输工具是在Windows操作系统下,于VisualStudio2012环境中用WinSock控件实现的,是基于TCP/ IP协议的C/S模式在服务易和客户端分别以Socke为中心逐行编程,其中服务易端和客户端的界面设计采用WindowsMFC框架,分别有文件发送模块和文件接收模块。该设计成功的实现了服务器和客户端的文件。成功的实现了服务器和客户端的文件传输。
关键词:C/S结构点对点Socket速接多线程多种格式的文件
中图分类号:TP393 1引言
文献标识码:A
如今,随着计算机应用的普及,许多人也已经将进人Intermet作为下一个计算机升级的目标,面用intermet进行文件传输,则是计算机联人Intermet的一个重要功能之一。因此各种文件传输系统便应运面生,如邮件,静天工具等,这费软件在使用上各有所长,但与此同时,其自身仍存在缺点和局限性,这些都给文件传输带来了很多不便。首先,对远程服务器的依赖导致有些文件传输工具不能完全实现点对点的文件传输,基至对文件的安全造成了威。其次,这些传输工具只适宜传输体积较小的文件,如果传输的文件体积过大,则会耗费很长时间,进而导致资源的浪费,俏若网络速度不理想,更有可能会导致传输中断。因此,开发-一个功能简单,易于操作,传输效
率高的文件传输工具势在必行。 2环境与相关开发技术
2.1Sock网络编程原理
套接字(socket)是一种网络编程接口,实际上就是一个通信端点,提供了发送和接收数据的机制.面Winsock是基于Windows操作系统下的网络编程接口,也就是基于Socket模型的APL,而最简单的一对一的CS结构的通信程序,就只有两个端点,即两个套接字(Socket),一个在Server端,另一个在Client端,这两个套接字就在CS 间建立了双向数据传送的连接。每个套接字都有一个套接字地址,通常是IP和端口的组合。
Socket分为阻塞模式和非阻塞模式:
阻塞模式是指在指定套接字上调用雨数执行操作时,在没有完成操作之前,函数不会立即返回。例如,服务器程序在阻塞模式下调用acept()函数时将会阻寒服务器线程,直至接收到~个来自客户媒的连接请求。默认创建的套接字为阻塞模式。
非阻塞模式是指在指定套接字上调用函数执行操作时,无论操作是否完成,函数都会立即返回。例如,在非阻塞模式下调用recvO) 函数时,程序会直接读取网络缓冲区中的数据,无论是否读到数据,函数都会立即返回,而不会一直挂在此函数的调用上,在并发线程模型中,服务器程序中使用了~个线程来等待客户端的连接请求,然后创建新线程与客户竭进行通信。因为每个客户确都拥有一个专门的通信服务线程,所以能够很及时地与服务器程序进行通信,不需要等待其他客户端通信结束。因此本设计采用了socket的非阻塞模式。
2.2c/s结构
C/S(Client/Server)结构,它是一种软件系统体系结构,也就
文章编号:1007-9416(2015)04-0061-02
是客户机/服务器结构。它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现。
任务分解成多个子任务,由多台计算机分工完成。客户端完成数据处理,数据表示以及用户接口功能,履务器端完成DBMS的核心功能。这种客户请求服务、服务器提供服务的处理方式是一种新型的计算机应用模式。
现在已经蓄遍采用3层C/S结构,与传统的二层结构相比,三层 C/S结构具有以下优点:首先,合理地划分三层结构的功能,从而使整个系统的逻辑结构更为清晰,提高系统和软件的可维护性和可扩展性;其次,可以更灵活地选用相应的平台和硬件系统,应用的各层
可以并行开发或者各自选择最适合的开发语言。 3文件传输工具的设计流程
3.1文件传输工具的总体流程
3.1.1接收端的启动创建监听线程:
(1)创建Socket,采用非阻塞模式。
(2)通过bind()函数绑定IP地址和端口号。(3)通过listenO)函数使其处于监听状态。
3.1.2发遇越的连接(1)创建Socket,
(2)通过connect()函数向接收端发送违接请求。
3.2文件传输工具的具体设计 3.2.1发送临
(1)创建一个连接线程:1)创建socket0.2)根据用户界面输入的 IP地址,调用connect()向接收端发出连接请求,3)连接建立后弹出对话概提示连接已建立。
(2)选定文件后,创建一个对文件进行分包的线程:1)自定义一个合适的分包大小f_size。2)根据filelength得到文件的总大小,通过 file.length/f_size求出该文件的分包数r_number。3)通过file length%t_size求出该文件最后一包的大小flast_size,4)通过socket将文件基本信息(文件名t_name,文件大小f_size)和文件分包信息(分包大小Lsize,分包数tnumber,最后一包大小flat_size)发送给接收端
(3)创建一个发送文件数据的线程:
sendThreadO
收稿日期:201503-09
作者介:高芳(1979一),女,汉族,山西榆次人学士学位,就职于国家新阅出版广电总局七二五台,职位:值班长,主要从事广播发送工作。
61
万方数据
上一章:城市网络交通突发事件应急方案 下一章:网络入侵检测系统中入侵规则构造浅析

相关文章

基于开放式数控系统的数控机床多线程数据实时采集研究 系统集成中的多线程网络通信技术研究 EPON网络中一个通道多业务无干扰传输的实现 基于FPGA的多通道高速数据传输系统的设计 基于STM32的多参数传感及传输系统的设计 基于搜索引擎的网络中文信息检索工具评价 基于改进卷积神经网络的车号识别算法 YD/T 3188-2016 基于表述性状态转移(REST)技术的业务能力开放应用程序接口(API) 文件传输业务