如果你坚持用腾讯通,且可以联网的话,那就要再看一下你公司或你开立腾讯通的服务器设置了 ,因为每一个公司或组织的服务器设置不一样,(在哪里查看服务器设置:先下载腾讯通软件————登录后点文件系统设置--然后服务器设置--输入自己的服务器设置。)不然腾讯通也就跟QQ一样了,没什么隐私性了,所以你要知道你公司或加入组织的服务器设置,如图。
然后让管理员给你开个号,就可以使用了 只要有网络,局域网速度堪比飞秋的。祝你用的愉快顺心。基于p2p的即时聊天和文件传输软件
摘 要
随着计算机网络技术的飞速发展,人们对于网络的依赖性也越来越大。通过网络的即时通信也越来越受到人们的喜爱,比如说现在非常流行的QQ即时通信软件就解决了人们在网络中交流的需求。
基于p2p的即时聊天和文件传输软件,是基于tcp/ip协议中的tcp和udp协议完成的一个能够完成即时通信和传输文件的软件,该软件实现了局域网内的通行,在不需要使用公网的情况下,使用该软件作为通信和传输文件的工具,既简单又安全。
该软件采用了通信模型中的p2p模型,使用java语言实现,实现原理较简单功能较单一,界面美化度较低。是一款简单的即时通信和文件传输软件。
关键词: 计算机网络 ; p2p ; tcp ; udp ; 通信和文件传输软件
目 录
1 引言 1
11 课题背景 1
12 国内外现状 1
13 本课题研究的迫切性 1
14 本文的主要工作 1
2需求分析和开发工具 1
21需求分析 1
22开发工具 2
3系统总体结构设计 3
31 基本简介 3
32 系统功能模块设计 3
33 功能模块介绍 4
4系统流程与实现 5
41 系统设计流程 5
411 即时聊天功能的流程设计5
412 文件传输功能系统实现6
42实现 8
5 测试 10
结 论 13
参考文献 13
1 引言
11 课题背景
网络的发展促进了通信的发中,通信的发展反过来让网络发展的更大更快,通信作为我们日常生活中不可或缺的东西,正在改变着人们的生活。比如说QQ即时通信软件就为人们的生活和学习带来了极大的方便。但是人们有时需要和与自己同一个局域网内的用户通信而通信的内容不通过公网来保证通信的安全,防止黑客或者一些心怀不轨的人通过非法的手段获取到通信的内容。因为一旦信息泄露了就有可能带来不可估量的损失。在这种情况下,基于p2p的即时聊天和文件传输的软件就产生了。
12 国内外现状
网络的普及也让一些人获得了获取了更多的信息。通过窃听,篡改,重放等攻击
的手机来阻止,或者是窃取别人的有用信息,这种事在一些大型的公司里曾经就发生过。现在一些大型的公司自己会去开发适合自己公司的即时通信软件来防止此类的安全事件出现,因此基于p2p的即时聊天和文件传输的应用开发现在仍然受到关注。
13 本课题研究的迫切性
基于p2p的即时聊天和文件传输软件的实现能够帮助我们了解基于p2p的软件的实现原理和过程,为我们以后开发一些大型的p2p的软件提供了技术上的保证。同时该软件能够用于局域网的通信和传输文件,具有一定的实际意义。
14 本文的主要工作
本文主要介绍了基于p2p的即时聊天和文件传输的软件的实现原理和实现的过
程,针对软件的原理和过程进行深入的讲解。同时本文可以作为基于p2p的即时聊天和文件传输的软件的使用说明书,通过具体而详细的阐述,让大家更容易的理解基于p2p的即时聊天和文件传输的软件的实现原理和实现的过程。
2需求分析和开发工具
21需求分析
由于国内外的安全现状不容乐观,人们通信的时的信息很容易会被黑客们获取,为
了在局域网中安全简单的痛信,人们就开发了基于p2p的即时通信和文件传输软件。该软件能够实现在局域网内和其他人通信,从而保证了通信的安全,让人们拥有更加安全和简单的痛信环境。同时,由于该软件是使用java语言开发,具有平台无关性。能够在不同的 *** 作系统的平台下完成即时通信和文件传输的功能。
22.p2p的即时聊天和文件传输软件的功能
p2p的即时聊天和文件传输软件有以下功能:
(1)局域网内点对点通信,
能够同一时间和多个人,在不同的ip和端口上实现通信
(2)简单文件传输
能够传输1M以上的文件
(3)能够在多个平台下实现通信
Java平台无关性
22开发工具
开发环境 java
开发工具 Myeclipse
TCP协议的工作流程下图所示:
UDP协议的工作流程下图所示:
3系统总体结构设计
31 基本简介
p2p的即时聊天和文件传输软件采用tcp和udp协议,使用java语言实现基于p2p的
即时聊天和文件传输的功能。同时,由于采用java语言实现具备了在多种平台下运行的优点。该软件主要包括两大部分,聊天部分和文件传输部分。聊天部分采用了udp协议,文件传输部分采用了tcp协议。
32 系统功能模块设计
p2p的即时聊天和文件传输软件实现了以下功能
(1)即时聊天功能
(2)文件传输功能
(3)记录查询聊天内容
33 功能模块介绍
即时聊天功能采用udp协议实现。聊天时用户必须输入通信对方的ip和端 口号 ,对
方只需要知道消息发送方的端口号,就能够收到信息。对方收到信息后,同样必须输入ip才能回复消息给对方。通信模型如下图
聊天功能实现模型图
文件传输功能是采用tcp协议实现的,tcp协议的面向连接,可靠性,面向字节流
等优点,以及差错控制,流量控制等特点,保证了文件传输的可靠性。整个流程是,文件发送方首先选择文件,在选择文件后,先发送文件的名称和大小给接收者。接收这如果同意接收文件则由接收者作为客户端向发送端发起连接,连接建立后,发送端开始传送文件给接收端。实现模型如下图所示
文件传输功能
4系统流程与实现
41 系统设计流程
411 即时聊天功能的流程设计
采用DUP协议设计即时聊天功能,在即时聊天功能中,设计了一个发送端和一个接收端,发送端和接收端处于同一个平台中,为了使通信双方能够造一次连接中进行多次通信在接收端采用了多线程,实现多次通信。
在通信建立的时候,通信的发起方首先填写通信的ip地址和port端口,然后发送消息给接收者。接受者需要在同样的端口上等待发起者的信息。
发送端:
发送端工作流程图
接收端:
接收端工作流程图 412 文件传输功能系统实现
使用TCP协议实现文件传输功能,在文件传输开始时,由发送方给接收方发送一个消息,消息内容为待发送文件的文件名和长度。接收端收到后判断是不是传送的文件,如果是传送的文件接收方择是否接收文件。然后开始传输文件,文件传输完成后,自动关闭服务器端和客户端。
发送端:
接收端:文件传输发送端工作流程
N
42实现
基于p2p的即时通信和文件传输软件的实现是采用窗体的形式。在实现过程中设计到几点主要的功能
首先即时通信功能的发送端的实现,首先创建DUP的socket套接字和UDP
数据报包
在数据包中写入消息发送到接收端。
主要实现代码:
public void send() throws Exception{
DatagramSocket ds2=new DatagramSocket();
DatagramPacket dp2=new DatagramPacket(strmsggetBytes(),
strmsggetBytes()length,InetAddressgetByName(ip),port);
ds2send(dp2);
ds2close();
}
接收端,还是创建DUP的socket套接字和UDP数据报包,然后接收数据。 DatagramSocket ds=new DatagramSocket(port);//udp的socket
DatagramPacket dp=new 套接字
DatagramPacket(buf,buflength);//udp数据报包
dsreceive(dp);
传送文件的实现过程:
发送文件的窗体采用另一个frame完成,在frame中完成了,选择和发送文件
sendmessage sm = new
sendmessage("file"+filepathgetText()toString(),
mainFrameipgetText(),IntegerparseInt(mainFrameportgetText()toString()));
smsend();
ServerSock ss=new
ServerSock(IntegerparseInt(mainFrameportgetText()toString()),filepathgetText()toString());
ssstart();
选择文件后,发送端使用UDP发送文件名和文件大小给接收端。如果接收端确认,就开始传输文件
接收后,显示的接收和拒接的信息,以供接收端接收
if(new String(buf)substring(0, 4)equals("file")){ mainFramejieshoufilesetText("收到文件:"+str+"是否接收?");
mainFramejieshouwenjiansetEnabled(true); mainFramejieshouwenjiansetEnabled(true);
mainFramejieshouwenjiansetText("接收"); mainFramejujuesetText("拒绝"); }
接收端点击接受后,创建clientsocket去连接服务器端,然后服务器开始传送文件
new Client(jfcgetSelectedFile()getPath())
接收数据
public DataInputStream getMessageStream() throws Exception {
try {
getMessageStream = new DataInputStream(new
BufferedInputStream(socketgetInputStream()));
return getMessageStream;
} catch (Exception e) {
eprintStackTrace();
if (getMessageStream != null)
getMessageStreamclose();
throw e;
} finally {
}
写入到文件
while (true) {
int read = 0;
if (inputStream != null) {
read = inputStreamread(buf);
}
passedlen += read;
if (read == -1) {
peak;
}
5 测试
软件界面,发送端和接收采用一个软件进行通信。
发送端:
接收端:
文件发送端
文件接收端
结 论
基于p2p的即时聊天和文件传输的软件有效解决了局域网内通信的问题,实现了局域网内即时聊天和文件传输。在软件实现的过程充分运用了在网络编程中学习的TCP和UDP的socket编程,并把二者有效的结合。通过这次课程设计,也掌握了文件传输和聊天的过程中的java实现。在设计过程中查阅了相关的java API和一些实现即时聊天和文件传输的例子,从中学习到了很多书本上没有的知识。为自己在以后的软件开发中积累了一些经验。
同时软件的设计和实现过程中也存在很多问题。比如,人机交互界面的设计不是很合理,在文件传输时就不能做其他的事情。没有运用多线程实现等等。这些问题说明了我在平时的学习中还需要合理有效的运用所学知识去设计和实现。
参考文献
[1]甘刚Linux/NUIX网络编程[M].北京:中国水利水电出版社,2008。
[2] 叶树华.网络编程实用教程[M].北京:人民邮电大学出版社,2010。
[3] 杜佳荣, 马建红, 滕振宇.Java网络编程技术与实践[M].北京:清华大学出版社,2008。好用的局域网通讯软件如下:
1、IMO,Imo内网通是一款完全免费局域网办公沟通软件;
2、飞秋,飞秋是一款局域网管理软件、局域网聊天软件的绿色软件,具有局域网传送方便,速度快, *** 作简单的优点,同时具有QQ中的一些功能;
3、飞鸽传书,飞鸽传书是一款局域网内部聊天、文件传输工具, 在程序结构方面采用了WindowsSDK处理结构,通信方面采用了TCP、UDP通信方式,在文件传输处理方面采用文件映射技术;
4、布谷鸟,布谷鸟可实现局域网络间跨网段、专用虚飞秋(FeiQ)是一款局域网聊天传送文件的绿色软件,它参考了飞鸽传书(IPMSG)和QQ, 完全兼容飞鸽传书(IPMSG)协议,具有局域网传送方便,速度快, *** 作简单的优点,同时具有QQ中的一些功能。
功能说明:
- 飞秋(FeiQ)是一款局域网内即时通信软件, 基于 TCP/IP(UDP)
- 完全兼容网上广为流传的飞鸽传书并比原来飞鸽功能更加强大
- 不需要服务器支持
- 支持文件/文件夹的传送 (支持大文件传送[4G以上]), 发送方和接收方都可查看传送进度功能
- 可以建立无需服务器的聊天室,具有群聊天室的功能
- 分组功能
- 组权限功能,可能每组设置不同的权限,例如屏蔽该组成员的信息,对该组成员隐身等。
- 给所有在线的用户群发消息及分组群发功能
- 黑名单功能
- 隐身功能,及对某特定组进行隐身功能
- 自定义备注名功能
- 个性头像、个性形象及个性签名功能
- 共享文件功能
- 远程协助功能,让你轻松实现远程维护、远程展示、共享桌面等功能,即时远程沟通。
- 语音聊天功能,可以语音对话,轻松实现协同办公。
- 自定义表情功能、支持截屏、支持GIF动画
- 随手涂鸭功能,能把您的创意想法得以很好的表达。
- 垃圾信息屏蔽功能
- 用户上下线进行通知功能
- 限制传送文件速度功能
- 日程安排与记事功能
- 日程提醒功能;它可以实现年、月、周、日、小时、分、秒的提醒,提醒同时可以执行动作(提示窗口、播放音乐、执行指定程序、关机等)。甚至每年的第几个月提醒、 第几月的星期几提醒等特殊的提醒。FreeICQ是一套主要针对局域网的即时通讯软件,包括服务端和客户端。
FreeICQ采用类OICQ界面, *** 作简单快捷,而且对电脑的配置要求较低、安装
简单,你几乎不用设置就可以迅速地建立一个即时通讯系统。
FreeICQ客户端的主要特性:
1用户注册和登录。
2接收/发送消息。
3发送离线消息。
4广播消息。
5传送文件。
6根据条件查找或查找在线用户,加为好友。
7声音和图标提示。
8用户悬浮提示窗。
9可以通过插件扩充功能。(现已提供象棋、五子棋、语音聊天3个插件)
FreeICQ服务端的主要特性:
1用户管理。
2日志管理。
3查看在线用户。
4系统广播消息。
5编辑部门列表。
6编辑链接地址。
>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)