基于套接字的局域网内文件传输软件
摘要
当今世界科学技术飞速发展尤其以计算机通信网络为代表的互联网技术更是日新月异令人眼花燎乱 目不睱接。在计算机与网络迅速发展的今天借助于网络进行信息资源交流给人们带来了极大的方便。各种文件传输系统都已被广大用户接受。比如、、邮件等互联网中运用最为广泛的文件传输工具但它们之间的文件传输往往对远程服务器有非常大的依赖性没有彻底实现点对点安全的文件传输。甚至需要花费大量的金钱购买各种移动磁盘或者其他局域网内连接主机的硬件设备。而达到的效果却总是因为传输效率以及安全威胁而受到很大的限制。在这种形势下开发一个功能简单而实用并且具有可移植性的局域网内文件传输工具势在必行信息之间交换技术使用也越来越广泛比如资料的共享信息之间的交互以及文件之间的传输。本论文设计了一个基于环境在局域网里实现文件传输的软件环境是如今很公司做软件开始所选着的环境该软件实现了文件在局域网里的传输方便了在局域网里内部进行交流实现信息的同步进一步提高工作的效率。
关键词文件传输套接字网络编程系统
(Col lege ,JishouUniversity,Jishou,Hunan 416000)
, .a a . , . ,, , , , ., , , , ,
; ; ;
目录第一章绪论•1
1 .1文件传输的应用背景与概述•1
1 .2开发环境介绍…………1
.
第二章基本原理
2.1文件传输的原理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
2.2文件传输软件的功能实现. . . . . . . . . . . . . . . . . . . . . .2
2.2.1函数介绍。。。。。。。 2
2.2.2编程基础重要的数据结构…………6
2.2.3提供的系统调用或函数的详细讲解…………6
2.2.4使用到的主要函数介绍()………6
2.3软件源代码…………7
2.3.1发送端源代码………8
2.3.2接收端源代码………9
第三章文件传输软件的使用. . . . . . . . . . . .10
3 1 接收端的使用………
3.2 发送端的使用。。。
3.3 测试结果。。。
第四章设计总结
.
.
.
参考文献•25
第一章绪论
1 .1文件传输的应用背景与概述
在日常的网络应用中文件传输已经成为继即时通讯之后第二大的网络基础应用而局域网里的文件发送是最方便的文件传输手段。越来越多的网民或是商业用户都采用这种方式发送文件目前许多即时通讯软件例如都局域网文件传输功能。现在在很多公司的开发环境面使用的都是基于内核的操作系统很多服务器也是使用的的系统该软件同样也能在环境下使用本论文设计了一个基于环境在局域网里实现文件传输的软件环境是如今很公司做软件开始所选着的环境该软件实现了文件在局域网里的传输方便了在局域网里内部进行交流实现信息的同步进一步提高工作的效率。
1 .2开发环境介绍
这次软件的开发环境是红帽5 红帽5是一款基于内核的操作系统是一种自由和开放源码的类操作系统。是一套免费使用和自由传播的类操作系统是一个基于和的多用户、多任务、支持多线程和多的操作系统。它能运行主要的工具软件、应用程序和网络协议。它支持32位和64位硬件。继承了以网络为核心的设计思想是一个性能稳定的多用户网络操作系统。它主要用于基于x86系列的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的兼容产品。
第二章基本原理
2.1文件传输的基本原理
本软件使用的是协议 中译名为传输控制协议/因特网互联协议又名网络通讯协议是最基本的协议、 国际互联网络的基础由网络层的协议和传输层的协议组成。 定义了电子设备如何连入因特网以及数据如何在它们之间传输的标准。协议采用了4层的层级结构每一层都呼叫它的下一层所提供的网络来完成自己的需求。通俗而言负责发现传输的问题一有问题就发出信号要求重新传输直到所有数据安全正确地传输到目的地。而是给因特网的每一台电脑规定一个地址。系统的文件传输功能主要依赖于建立客户端与服务器之间点对点的的连接后实现。所以就得与协议协合。协议( )叫做传输控制/网际协议又叫网络通讯协议这个协议是国际互联网络的基础。是网络中使用的基本通信协议。虽然从名字上看包括两个协议传输控制协议()和网际协议() 但实际上是一组协议只是协议处于运输层它能够确保文件准确的传
送而协议处于网络层它标识了处于网络中任意主机的唯一身份。协议和协议是保证数据完整传输的两个基本的重要协议。通常说是协议族而不单单是和采用详解的原因
第一局域网内主机之间的是依靠地址进行标识。本设计要实现文件及文件夹的传输就需要以地址为传送基础进行
第二新用户上线后需要向局域网内所有用户广播自己的主机信息使网内主机得到本机的地址等。需要用到与相对的协议。
2.2文件传输软件功能的实现
该软件是基于套接字实现局域网的内部两台机器之间的通信利用函数建立连接通过提供的系统调用完成文件传输功能。具体分析如下假设由A向B传输文件A机器要做的准备工作有A首先得准备好传输给B的我文件然后利用与B建立通信然后用函数读取的内容将的内容写到一个中然后把利用函数通过将内容传送到B机器。B机器的准备工作有建立一个监听来自A的请求同时建立一个用来存储来自A机器的信息然后利用函数把来自A机器的内容存储在一个文件中完成上述操作就完成了由A到B的文件传输。
发送端/接收端模式
() 获得一个文件描述符
将指定绑定到某端口
连接到远程某个端口
() 侦听等待远程连接
() 接受了一个远程连接
()()发送或接收数据()
()()发送或接收数据()
() 关闭描述符
() 将地址字符串转换成网络字节序的4字节地址
2.2.1函数介绍
创建一个套接口一个地址描述。 目前仅支持格式也就是说地址格式。 新套接口的类型描述。 套接口所用的协议。
()函数用于根据指定的地址族、数据类型和协议来分配一个套接口的描述字及其所用的资源。如果协议未指定等于0 则使用缺省的连接方式。
对于使用一给定地址族的某一特定套接口只支持一种协议。但地址族可设为未指定 这样的话协议参数就要指定了。协议号特定于进行通讯的“通讯域”。支持下述类型描述 类型解释 提供有序的、可靠的、双向的和基于连接的字节流使用带外数据传送机制为地址族使用。支持无连接的、不可靠的和使用固定大小通常很小缓冲区的数据报服务为地址族使用。 类型的套接口为全双向的字节流。对于流类套接口在接收或发送数据前必需处于已连接状态。用()调用建立与另一套接口的连接连接成功后即可用()和()传送数据。当会话结束后调用()。带外数据根据规定用()和()来接收。 实现类型套接口的通讯协议保证数据不会丢失也不会重复。如果终端协议有缓冲区空间且数据不能在一定时间成功发送则认为连接中断其后续的调用也将以错误返回。类型套接口允许使用()和()从任意端口发送或接收数据报。如果这样一个套接口用()与一个指定端口连接则可用()和()与该端口进行数据报的发送与接收。
2.2.2 编程基础重要的数据结构
结构的地址信息
{
; ,
[14]; 14
}总长度16字节
结构存放地址信息
{
;
;
;
[8];
};
{
32; 'sa32 (4)
};
2.2.3 提供的系统调用函数的介绍
相关函数
表头文件 <> <>
定义函数 ( );
函数说明 ()用来建立一个套接字文件描述符也就是向系统注册通知系统建立一通信端口。参数指定使用何种的地址类型完整的定义在内底下是常见的协议:
进程通信协议
4网络协议
666网络协议
协议
核心用户接口装置
2525 X.258208协议
2525业余无线.25协议
存取原始
协议
初级封包接口
参数有下列几种数值:
提供双向连续且可信赖的数据流即。支持机制在所有数据传送前必须使用()来建立连线状态。
使用不连续不可信赖的数据包连接
提供连续可信赖的数据包连接
提供原始网络协议存取
提供可信赖的数据包连接
提供和网络驱动程序直接通信。
用来指定所使用的传输协议编号通常此参考不用管它设为0即可。
返回值 成功则返回处理代码失败返回-1 。
2.3.4使用到的主要函数介绍
对定位
相关函数
表头文件 <> <>
定义函数 ( * );
函数说明 ()用来设置给参数的一个名称。此名称由参数指向一结构对于不同的定义了一个通用的数据结构
{
;
[14];
};
为调用 时的参数即值。
最多使用14个字符长度。
此结构会因使用不同的而有不同结构定义例如使用 其结构定义便为
{
;
16;
;
[8];
};
{
32;
};
即为
为使用的编号
为地址
未使用。
参数 为的结构长度。
返回值 成功则返回0 失败返回-1 错误原因存于中。
错误代码 参数非合法处理代码。
权限不足
参数为一文件描述词非。
范例 参考()
等待连接
特网云官網特网云服务器在硬件级别上实现云主机之间的完全隔离;采用高端服务器进行部署,同时采用集中的管理与监控,确保业务稳定可靠,搭建纯SSD架构的高性能企业级云服务器,同时采用Intel Haswell CPU、高频DDR4内存、高速Sas3 SSD闪存作为底层硬件配置,分钟级响应速度,特网云采用自带硬防节点,部分节点享免费20G防御,可实现300G防御峰值,有效防御DDoS、CC等恶意攻击,保障...
我们在去年12月分享过Hosteons新上AMD Ryzen9 3900X CPU及DDR4内存、NVMe硬盘的高性能VPS产品的消息,目前商家再次发布了产品更新信息,暂停新开100M带宽KVM套餐,新订单转而升级为新的Budget KVM VPS(SSD)系列,带宽为1Gbps端口,且配置大幅升级,目前100M带宽仅保留OpenVZ架构产品可新订购,所有原有主机不变,用户一直续费一直可用。Bud...
菠萝云国人商家,今天分享一下菠萝云的广州移动机房的套餐,广州移动机房分为NAT套餐和VDS套餐,NAT就是只给端口,共享IP,VDS有自己的独立IP,可做站,商家给的带宽起步为200M,最高给到800M,目前有一个8折的优惠,另外VDS有一个下单立减100元的活动,有需要的朋友可以看看。菠萝云优惠套餐:广州移动NAT套餐,开放100个TCP+UDP固定端口,共享IP,8折优惠码:gzydnat-8...