文件传输方法和系统以及接收文件装置、发送文件装置与流程

文档序号:12625106阅读:322来源:国知局
文件传输方法和系统以及接收文件装置、发送文件装置与流程

本发明涉及网络通信技术领域,特别涉及一种文件传输方法和系统以及接收文件装置、发送文件装置。



背景技术:

近年来随着网络系统的快速发展,网络传输成为企业及个人越来越常用的一种资源共享方式。基于现有的技术,人们常用的传输手段中,大部分时基于互联网的,如提供内嵌于客户端软件的腾讯QQ等传输工具,或者通过附件的方式实现文件传输的邮件等传输工具,需内嵌于客户端的传输工具不仅安装启动过程繁琐,而且在某些无法连入外网,无法登录的情况下,传输便无法实现。

现有技术中的文件传输方式至少具有下述缺陷:

其一,需要安装部署器软件提供的客户端;其二,必须依赖于外网,注册登录后才能实现文件的传输。



技术实现要素:

鉴于上述问题,提出了本发明以便提供克服上述问题或者至少部分地解决上述问题的一种文件传输方法和系统以及接收文件装置、发送文件装置,本发明的技术方案是这样实现的:

一方面,本发明提供了一种文件传输方法,包括:

监测接收端用于接收文件的约定的端口号的状态,检测是否有发送端发来的传输文件;

当有文件传输到所述接收端时,提示输入存储所述传输文件的文件名称和文件路径;

根据用户输入的所述文件名称和文件路径,通过所述接收端与所述发送端的套接字连接将所述传输文件写入到所述接收端本地;其中,所述接收端与所述发送端的套接字连接由所述发送端根据所述接收端的IP地址和所述 约定的端口号建立。

优选地,在通过所述接收端与所述发送端的套接字连接将所述传输文件写入到所述接收端本地之前,所述方法还包括:

启动一接收独立线程;

所述通过所述接收端与所述发送端的套接字连接将所述传输文件写入到所述接收端本地具体为:

所述接收独立线程通过所述接收端与所述发送端的套接字连接接收所述传输文件,并将所述传输文件写入到所述接收端本地。

优选地,所述将所述传输文件写入到所述接收端本地具体为:采用缓冲流将所述传输文件写入到所述接收端本地。

本发明还提供了另一种文件传输方法,所述方法包括:

获取接收端的IP地址和约定的用于接收文件的端口号,并根据所述IP地址和所述约定的端口号建立与所述接收端的套接字连接;

在需要向所述接收端传输文件时,提示输入待传输文件的文件名称及文件路径;

根据用户输入的文件名称及文件路径,获取本地的所述待传输文件,并将所述待传输文件通过所述套接字连接发送给所述接收端。

优选地,所述将所述待传输文件通过所述套接字连接发送给所述接收端之前,还包括:

启动一发送独立线程;

所述将所述待传输文件通过所述套接字连接发送给所述接收端具体为:

通过所述发送独立线程,将所述待传输文件通过所述套接字socket连接发送给所述接收端。

优选地,所述获取本地的所述待传输文件具体为:采用缓冲流读取所述待传输文件。

另一方面,本发明还提供了一种接收文件装置,包括:

监测模块,适用于监测所述接收端用于接收文件的约定的端口号的状态,检测是否有发送端发来的传输文件;

第一提示模块,适用于当有文件传输到接收端时,提示输入存储所述传 输文件的文件名称和文件路径;

文件接收模块,适用于根据用户输入的所述文件名称和文件路径,通过所述接收端与所述发送端的套接字连接将所述传输文件写入到所述接收端本地;其中,所述接收端与所述发送端的套接字连接由所述发送端根据所述接收端的IP地址和所述约定的端口号建立。

本发明还提供了一种发送文件装置,包括:

连接模块,适用于获取接收端的IP地址和约定的用于接收文件的端口号,并根据所述IP地址和所述约定的端口号建立与所述接收端的套接字连接;

第二提示模块,适用于在需要向所述接收端传输文件时,提示输入待传输文件的文件名称及文件路径;

文件发送模块,适用于根据用户输入的文件名称及文件路径,获取本地的所述待传输文件,并将所述待传输文件通过所述套接字连接发送给所述接收端。

又一方面,本发明还提供了一种文件传输系统,包括上述技术方案提供的接收文件装置和上述技术方案提供的发送文件装置。

优选地,所述接收文件装置和所述发送文件装置位于同一局域网中。

本发明实施例的有益效果是:本发明公开了一种文件传输方法和系统以及接收文件装置、发送文件装置,本发明的技术方案通过接收端的程序配置并监测接收端用于接收文件的约定端口号,发送端的程序根据接收端的IP地址和该约定端口号建立接收端和发送端的套接字socket连接;传输文件时,发送端的程序将发送端本地的文件发送给接收端;接收端的程序在监测到有文件传输过来时,通过接收端与发送端的套接字socket连接将传输文件写入到接收端本地,从而快速、便捷的实现文件传输。本发明仅需简单的程序,即可实现文件的传输,相比于现有技术,无需进行繁琐的安装、注册登录等过程,具有操作简单、方便、快捷的优势。

附图说明

图1为本发明实施例提供的一种文件传输方法的流程图;

图2为本发明实施例提供的另一种文件传输方法的流程图;

图3为本发明实施例提供的一种接收文件装置的组成结构示意图;

图4为本发明实施例提供的一种发送文件装置的组成结构示意图;

图5为本发明实施例提供的一种文件传输系统的组成结构示意图。

具体实施方式

本发明的整体设计思想是:通过IP地址建立发送端和接收端的套接字socket连接,并在发送端和接收端各自启动一独立线程,分别用于发送文件和接收文件,在文件传输过程中采用TCP/IP协议可靠地完成通信传输。

其中,网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket,socket通常称为“套接字”,用于描述IP地址和端口,即一个Socket由一个IP地址和一个端口号唯一确定,是一个通信链的句柄,用来实现不同虚拟机或计算机之间的通信。

互联网协议地址IP地址(Internet Protocol Address,又译为网际协议地址)是IP协议提供的一种统一的地址格式,为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

图1为本发明实施例提供的一种文件传输方法流程图,图1所示方法包括:

S100,监测接收端用于接收文件的约定的端口号的状态,检测是否有发送端发来的传输文件。

在步骤S100中,当监测接收端约定的端口号的状态,以检测是否有发送端发来传输文件时,可以通过Java中套接字socket的类ServerSocket实现。

在实际应用中,可以在Java中建立套接字Socket服务器的类,使用服务器需要的端口号作为参数来创建服务器对象。例如,可以通过ServerSocket serverSocket=new ServerSocket(port);socket=serverSocket.accept()来监听端口port等待连接,一旦有发送端连接便创建套接字socket实例。然后 通过套接字socket交互发送端和接收端的数据。serverSocket.accept()的这一方法是阻塞式的,没有发送端连接就一直处于监听状态,等待连接,直到有发送端连接进来才通过套接字socket实例与发送端进行交互。一个接收端可以被多个发送端连接,每连接一次都会创建一个socket实例,派发服务线程。

在实际应用中,接收端需预先配置用于接收文件的约定的端口号。

需要说明的是,系统的每一个端口号都提供一定的服务,其中,0~1023的端口号为系统所保留。例如,超文本传输协议http服务的端口号为80,远程终端协议Telnet服务的端口号为21,文件传输协议ftp服务的端口号为23,接收端在选择约定的端口号时,优选大于1023的端口以防止发生冲突。

在步骤S100中,通过下述程序实现对接收端约定的端口号进行检测:

S110,当有文件传输到接收端时,提示输入存储传输文件的文件名称和文件路径,提示输入储传输文件的文件路径和文件名的方式可以是用户当下输入的,也可以是程序缺省或默认的,使得用户可以灵活配置文件保存的路径。

具体地,通过下述程序获取传输文件的文件路径和文件名:

S120,根据用户输入的文件名称和文件路径,通过接收端与发送端的套接字socket连接将传输文件写入到接收端本地;其中,接收端与发送端的套接字socket连接由发送端根据接收端的IP地址和约定的端口号建立。

由于socket连接所支持的协议种类不仅TCP/IP协议的一种,而TCP协议是一种面向连接的保证可靠传输的协议,且在Java环境下,Socket编程主要是指基于TCP/IP协议的网络编程。因此,本实施优选TCP/IP协议对socket进行读/写操作。

在步骤S120中,在通过接收端与发送端的套接字socket连接将传输文件写入到接收端本地之前,图1中的方法还包括:启动一接收独立线程;

其中,步骤S120中,通过接收端与发送端的套接字socket连接将传输文件写入到接收端本地具体为:接收独立线程通过接收端与发送端的套接字socket连接接收传输文件,并将传输文件写入到接收端本地。

本实施例中的接收端接收的文件类型包括但不局限于文本文件、音视频文件。

在步骤S120中,优选地,采用缓冲流将所述传输文件写入到接收端本地,提高读写效率。

采用缓冲流将传输文件写入到接收端本地的程序代码为:

本实施例只需开启接收端的程序,监测约定的端口号的状态,在有文件传输过来时,提示用户输入存储传输文件的文件名称和文件路径,即可完成文件的接收。相比于现有技术,本实施例的接收端不需要进行繁琐的安装、注册登录等过程,仅需简单的套接字程序即可实现文件的接收,具有操作简单、方便、快捷的优势,且通过独立线程完成文件的接收能够提供程序运行 的稳定性,避免卡死等常见传输问题。

在本实施例的一个优选方案中,在接收端预先启动一接收独立线程,通过该接收独立线程预先配置用于接收文件的端口,该接收独立线程监测该端口的状态,检测是否有文件传输;在有文件输出时,该接收独立线程通过发送端与接收端的套接字socket连接接收发送端发送的传输文件。

图2为本发明实施例提供的另一种文件传输方法的流程图,图2所示的方法包括:

S200,获取接收端的IP地址和约定的用于接收文件的端口号,并根据IP地址和约定的端口号建立与接收端的套接字连接。

在步骤S200中,对发送端获取接收端的IP地址和约定的端口号的方式不做限定,可以是保存在发送端系统上的相应接收端的IP地址和端口号,也可以是用户输入的接收端的IP地址和端口号。

在建立socket连接时,至少需要一对套接字,其中一个运行于发送端,称为发送端套接字ClientSocket,另一个运行于接收端,称为接收端套接字ServerSocket。本实施例不限定与接收端约定的端口号进行连接的发送端的端口号。

套接字socket之间的连接过程主要分为接收端监听、发送端请求、连接确认三个步骤。

接收端监听是指:接收端套接字socket并不定位具体的发送端套接字socket,而是处于等待连接的状态,实时监控网络状态,等待发送端的连接请求。

发送端请求是指:发送端的套接字socket提出连接请求,要连接的目标是接收端的套接字socket。为此,发送端的套接字socket必须首先描述它要连接的接收端的约定的套接字socket,指出接收端套接字socket的地址和端口号,然后就向接收端套接字socket提出连接请求。

连接确认是指:当接收端套接字socket监听到或者接收到发送端套接字socket的连接请求时,就响应发送端套接字socket的请求,建立一个新的线 程,把接收端套接字socket的描述发给发送端,一旦发送端确认了此描述,双方就正式建立连接。而接收端套接字socket继续处于监听状态,继续接收其他发送端套接字socket的连接请求。

在步骤S200中,通过下述程序配置接收端的IP地址和约定的用于接收文件的端口号,以及建立与接收端的套接字连接:

S210,在需要向接收端传输文件时,提示输入待传输文件的文件名称及文件路径,提示输入待传输文件的文件路径和文件名的方式可以是用户当下输入的,也可以是程序缺省或默认的,使得用户可以灵活配置文件保存的路径。

具体的,通过下述程序提示用户输入待传输文件的文件名和文件路径:

S220,根据用户输入的文件名称及文件路径,获取本地的待传输文件,并将待传输文件通过套接字socket连接发送给接收端。

在步骤S220前,即将待传输文件通过套接字socket连接发送给接收端之前,图2中的方法还包括:启动一发送独立线程;

其中,在步骤S220中,将待传输文件通过套接字socket连接发送给接收端具体为:通过发送独立线程,将待传输文件通过套接字socket连接发送给所述接收端。

本实施例中的发送端发送的文件类型包括但不局限于文本文件、音视频文件。

在步骤S220中,优选地,采用缓冲流读取待传输文件,提高读写效率。

具体的,采用缓冲流读取发送端本地的待传输文件的程序代码为:

本实施例通过配置好接收端的IP地址和端口号,只需开启发送端程序,输入待传输文件的文件名称和文件路径,即可完成文件的发送。相比于现有技术,本实施例的发送端不需要进行繁琐的安装、注册登录等过程,仅需简单的套接字线程即可实现文件的发送,具有操作简单、方便、快捷的优势,且通过独立线程完成文件的发送能够提供程序运行的稳定性,避免卡死等常见传输问题。

在本实施例的一个优选方案中,在发送端预先启动一发送独立线程,通过该发送独立线程预先获取接收端的IP地址和约定的用于接收文件的端口号,该发送独立线程根据IP地址和所述端口号建立与接收端的套接在socket连接;在需要向接收端传输文件时,该发送独立线程获取待传输文件在发送端本地的文件路径和文件名,采用缓冲流读取待传输文件并通过套接字socket连接发送给接收端。

本发明上述技术方案中的发送端和接收端尤其适用于局域网,当发送端和接收端处于同一局域网时,发送端和接收端不需连接外网即可进行文件传输。

基于与上述图1中文件传输方法的相同技术构思,本发明还提供了一种接收文件装置。

图3为本发明实施例提供的一种接收文件装置的组成结构示意图,如图 3所示,所述接收文件装置包括监测模块30、第一提示模块31和文件接收模块32。

监测模块30,适用于监测接收端用于接收文件的约定的端口号的状态,检测是否有发送端发来的传输文件。

监测模块30在监测约定的端口号的状态,以检测是否有发送端发来的传输文件时,可以通过Java中套接字socket的类ServerSocket实现。

在实际应用中,可以在Java中建立套接字Socket服务器的类,使用服务器需要的端口号作为参数来创建服务器对象。例如,可以通过ServerSocket serverSocket=new ServerSocket(port);socket=serverSocket.accept()来监听端口potr,等待连接,一旦有发送端连接便创建套接字socket实例。然后通过套接字socket交互发送端和接收端的数据。serverSocket.accept()的这一方法可以说是阻塞式的,没有发送端连接就一直处于监听状态,等待连接,直到有发送端连接进来才通过套接字socket实例与发送端进行交互。一个接收端可以被多个发送端连接,每连接一次都会创建一个socket实例,派发服务线程。

在实际应用中,该接收端的接收独立线程还需预先配置用于接收文件的约定的端口号。

需要说明的是,系统的每一个端口号都提供一定的服务,其中,0~1023的端口号为系统所保留。例如,超文本传输协议http服务的端口号为80,远程终端协议Telnet服务的端口号为21,文件传输协议ftp服务的端口号为23,接收端在选择约定的端口号时,优选大于1023的端口以防止发生冲突。

第一提示模块31,适用于当有文件传输到接收端时,提示输入存储传输文件的文件名称和文件路径,其中提示输入储传输文件的文件路径和文件名的方式可以是用户当下输入的,也可以是程序缺省或默认的,使得用户可以灵活配置文件保存的路径。

文件接收模块32,适用于根据用户输入的文件名称和文件路径,通过接收端与所述发送端的套接字socket连接将传输文件写入到接收端本地;其中,接收端与发送端的套接字socket连接由发送端根据接收端的IP地址和约定的端口号建立。

图3所述的接收文件装置还包括第一启动模块,用于启动一接收独立线程;

则文件接收模块32具体用于,接收独立线程通过接收端与发送端的套接字socket连接接收传输文件,并将传输文件写入到接收端本地。

优选地,文件接收模块32采用缓冲流将所述传输文件写入到接收端本地,提高读写效率。

由于socket连接所支持的协议种类不仅TCP/IP协议的一种,而TCP协议是一种面向连接的保证可靠传输的协议,且在Java环境下,Socket编程主要是指基于TCP/IP协议的网络编程。因此,本实施优选TCP/IP协议对socket进行读/写操作。

本实施例中的接收文件装置可以接收的文件类型包括但不局限于文本文件、音视频文件。

本实施例只需开启接收文件装置对应的程序,通过检测模块监测约定的端口号的状态,在有文件传输过来时,通过第一提示模块提示用户输入存储传输文件的文件名称和文件路径,即可完成文件的接收。相比于现有技术,本实施例的接收端不需要进行繁琐的安装、注册登录等过程,仅需简单的套接字程序即可实现文件的接收,具有操作简单、方便、快捷的优势,且通过独立线程完成文件的接收能够提供程序运行的稳定性,避免卡死等常见传输问题。

基于与上述图2中文件传输的方法的相同技术构思,本发明还提供了一种发送文件传输装置。

图4为本发明实施例提供的一种发送文件装置组成结构示意图,如图4所示,该发送文件装置包括连接模块40、第二提示模块41和文件发送模块42。

连接模块40,适用于获取接收端的IP地址和约定的用于接收文件的端口号,并根据IP地址和约定的端口号建立与接收端的套接字socket连接。

本实施例的连接模块40对发送端获取接收端的IP地址和约定的端口号的方式不做限定,可以是保存在发送端系统上的相应接收端的IP地址和端口号,也可以是用户输入的接收端的IP地址和端口号。

在建立socket连接时,至少需要一对套接字,其中一个运行于发送端,称为发送端套接字ClientSocket,另一个运行于接收端,称为接收端套接字ServerSocket。本实施例不限定与接收端约定的端口号进行连接的发送端的端口号。

套接字socket之间的连接过程主要分为接收端监听、发送端请求、连接确认三个步骤。

接收端监听是指:接收端套接字socket并不定位具体的发送端套接字socket,而是处于等待连接的状态,实时监控网络状态,等待发送端的连接请求。

发送端请求是指:发送端的套接字socket提出连接请求,要连接的目标是接收端的套接字socket。为此,发送端的套接字socket必须首先描述它要连接的接收端的约定的套接字socket,指出接收端套接字socket的地址和端口号,然后就向接收端套接字socket提出连接请求。

连接确认是指:当接收端套接字socket监听到或者接收到发送端套接字socket的连接请求时,就响应发送端套接字socket的请求,建立一个新的线程,把接收端套接字socket的描述发给发送端,一旦发送端确认了此描述,双方就正式建立连接。而接收端套接字socket继续处于监听状态,继续接收其他发送端套接字socket的连接请求。

第二提示模块41,适用于在需要向接收端传输文件时,提示用户输入待传输文件的文件名称及文件路径,提示输入待传输文件的文件路径和文件名的方式可以是用户当下输入的,也可以是程序缺省或默认的,使得用户可以灵活配置文件保存的路径。

文件发送模块42,适用于根据用户输入的文件名称及文件路径,获取本地的待传输文件,并将待传输文件通过套接字socket连接发送给接收端。

图4中所述的发送文件装置还包括第二启动模块,用于启动一发送独立线程。

则文件发送模块42具体用于,通过发送独立线程,将待传输文件通过套接字socket连接发送给所述接收端。

优选地,文件发送模块42采用缓冲流读取待传输文件,提高读写效率。

本实施例中的发送文件装置可以发送的文件类型包括但不局限于文本文件、音/视频文件。

本实施例的发送文件装置通过连接模块配置好接收端的IP地址和端口号,只需开启发送文件装置对应的程序,通过第二提示模块提示输入待传输文件的文件名称和文件路径,即可完成文件的发送。相比于现有技术,本实施例的发送端不需要进行繁琐的安装、注册登录等过程,仅需简单的套接字线程即可实现文件的发送,具有操作简单、方便、快捷的优势,且通过独立线程完成文件的发送能够提供程序运行的稳定性,避免卡死等常见传输问题。

本发明图3所示实施例中的接收文件装置和图4所示实施例中的发送文件装置尤其适用于局域网,当发送文件装置所在的发送端和接收文件装置所在的接收端处于同一局域网时,发送端和接收端通过本发明提供的发送文件装置和接收文件装置不需连接外网即可直接进行文件传输。

本发明实施例还提供了一种文件传输系统,如图5所示,为本发明实施例提供的文件传输系统的组成结构示意图。

图5中的文件传输的系统包括接收文件装置50和发送文件装置51,该接收文件装置50包括监测模块501、第一提示模块502和文件接收模块503,发送文件装置51包括连接模块511、第二提示模块512和文件发送模块513。

其中,接收文件装置50的监测模块501、第一提示模块502和文件接收模块503与图3中的监测模块30、第一提示模块31和文件接收模块32具有相同的功能和连接关系,发送文件装置51的连接模块511、第二提示模块512和文件发送模块513与图4中的连接模块40、第二提示模块41和文件发送模块42具有相同的功能和连接关系。

该系统中的接收文件装置50和发送文件装置51之间的文件传输的具体过程如下:

接收文件装置50:

监测模块501配置用于接收文件的约定的端口号,并监测该约定的端口号的状态,检测是否有发送端发来的传输文件。

发送文件装置51:

连接模块511获取接收端的IP地址和约定的端口号,并根据IP地址和约定的端口号建立与接收端的套接字socket连接。

第二提示模块512在发送端需要向接收端传输文件时,提示用户输入带传输文件的文件名和文件路径。

文件发送模块513,根据第二提示模块中获取的文件名和文件路径,从发送端本地采用缓冲流读取待传输的文件,并将读取到的待传输的文件通过发送端与接收端的套接字socket连接发送给接收端。

接收文件装置50:

当传输文件传输到接收端时,第一提示模块502提示用户输入存储该传输文件的文件名和文件路径。

文件接收模块503根据第一提示模块502获取的文件名和文件路径,将从接收端与发送端的套接字socket连接通道传输的文件,采用缓冲流写入到接收端本地。

在本实施例的一个优选方案中,发送文件装置51还包括地第二启动模块,用于启动一发送独立线程,文件发送模块513具体用于通过发送独立线程,将待传输文件通过套接字socket连接发送给所述接收端。

在本实施例的另一个优选方案中,接收文件装置50还包括地第一启动模块,用于启动一接收独立线程,文件接收模块503具体用于接收独立线程通过接收端与发送端的套接字socket连接接收传输文件,并将传输文件写入到接收端本地。

本实施例中的接收文件装置50和发送文件装置51优选地位于同一局域网中。

综上所述,本发明公开了一种文件传输方法和系统以及接收文件装置、发送文件装置,本发明的技术方案通过接收端的程序配置并监测接收端用于接收文件的约定端口号,发送端的程序根据接收端的IP地址和该约定端口号建立接收端和发送端的套接字socket连接;传输文件时,发送端的程序将发送端本地的文件发送给接收端;接收端的程序在监测到有文件传输过来时, 通过接收端与发送端的套接字socket连接将传输文件写入到接收端本地,从而快速、便捷的实现文件传输。本发明仅需简单的程序,即可实现文件的传输,相比于现有技术,无需进行繁琐的安装、注册登录等过程,具有操作简单、方便、快捷的优势。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1