- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网络编程结课报告之同一子网下文件互传和共享研究.doc
同一子网下文件互传及共享的研究
一、设计目的
本次课程的结课设计作品将主要解决家庭或咖啡厅环境下,实现同一 WiFi下(即同一子 网下)文件的互传共享。通过这种方式便可让用户从共享文件服务节点(一般为笔记本电脑) 下载感兴趣的文件,或者可上传自己的文件到服务节点以便其他用户享用文件的使用权。这 个作品有点类似市面上的网盘的功能,只不过与网盘不同的是,这种方式仅仅限用于小范围 的文件共享,但避免了公共网络链路而提高了传输的数据率。另外可能的话还可以实现电影 音乐的在线播放功能,使用户在家屮随时随地的使用共享的电影音乐。
二、设计内容
用户只需简单地连接上同一接入点,向外发送一个搜寻广播帧,便可搜寻同一接入点下的共 享文件服务节点(一般为笔记本电脑等),服务节点接收到广播帧Z后向源节点回复自己的位 置信息(IP地址),用户节点根据接收到的服务节点列表,选择某一个服务节点进行连接然后 便可实现与该服务节点的交互,用户可发送某路径下的文件列表请求以获得该文件列表,也 可以发送某一文件路径的下载请求以下载得到该文件,也可发送本地文件的上传请求以向服 务器上传拟分享的文件。另外还可以实现电影音乐的在线播放。
应用场景
星巴克:店家或是顾客可以在笔记本上打开服务器程序,便可分享共享路径下的文件, 接受者可轻松亭有这些文件的使用权。
家庭:将家里某一台电脑作为服务器,便可轻松实现文件服务。
寝室:文件传输,只需连上同一个wifi下即可,抛开数据线吧。
扩展辅助功能:聊天室,在同一 wifi下实现广播式聊天
三、系统架构
1.
单纯型AP:单纯型AP由于缺少了路由功能,相当于无线交换机,仅仅是提供一个无线 信号发射的功能。它的工作原理是将网络信号通过双绞线传送过來,经过无线AP的编译, 将电信号转换成为无线电讯号发送出来,形成无线网络的覆盖。根据不同的功率,网络覆盖 程度也是不同的,一般无线AP的最大覆盖距离可达400米。
扩展m ap:扩展型ap就是我们常说的无线路由器了。无线路由器,顾名思义就是带有 无线覆盖功能的路由器,它主要应用于用户上网和无线覆盖。通过路由功能,可以实现家庭 无线网络中的Internet连接共享,也能实现ADSL和小区宽带的无线共享接入。值得一提的 是,可以通过无线路由器把无线和有线连接的终端都分配到一个子网,使得子网内的各种设 备可以方便的交换数据。
介于以上的情况,我们这里选用扩展型AP。
2.搜寻附近的文件共享服务节点流程图如下:
2.搜寻附近的文件共享服务节点流程图如下:
3.请求文件共亭服务流程图如下:
目录:获取某一路径下的文件列表; 咅乐电影:多媒体文件,在线播放功能; 文档:本系统的基本功能;
开发平台或软件
编辑坏境:CodeBlocks AndroidStudio
编程语言:C语言 Java
服务端操作系统:Windows
相关:利用JNI实现Linux C Socket的调用
六、核心代码
1?服务节点搜寻响应程序关键代码:
设置广播属性:
/ / fS
SAAAAAAA/VVVV VWV
mOptionValue=l;
if(setsockopt(mSocketSearch,SOL_SOCKETr S0_3R0ADCASTz imOptionValuez sizeof(char))0)
{ 一 一
ErrorHandler(nSockecOptionSet Failed\nn,L);
}
接受并响应搜寻服务节点请求:
while(二)
{ _
recvfrom(mSocketSearch,recv3ufferr BUFSIZE,0,
(SOCKADDR *)mClientAddressF mClientAddressLength);
if(mClientAddress.sin_addr?s_addr1=inServerAddress ? sin_addr?s_addr
strcmp (recvBuffer^ nI Ait Searching For Serversrr) —0)
{
g g ? I 4 ?B?* I MB ■ I ? f y F hd I W
/ f」乂「人 R1 「因 1—4 — ww ?八. JIA XJ ???、、HJ ―v^6r
mClienrAddress ? sin_pQrt=htons(PORT_BROADCAST);
sendto(mSocketSearch,sendBufferF scrlen(send3uffer)*1F 0.
(SOCKADDR *)SmClientAddress r3r zaleastAddressr sizeof(SOCKADDR));
}
vwv 、J —* 口 刁 j J ‘n a 1 丿,J 冃
}
文件共享服务节点传输请求: 接
原创力文档


文档评论(0)