基于p2p的局域网聊天和文件传输软件

基于p2p的局域网聊天和文件传输软件
基于p2p的局域网聊天和文件传输软件

基于p2p的即时聊天和文件传输软件

摘要

随着计算机网络技术的飞速发展,人们对于网络的依赖性也越来越大。通过网络的即时通信也越来越受到人们的喜爱,比如说现在非常流行的QQ即时通信软件就解决了人们在网络中交流的需求。

基于p2p的即时聊天和文件传输软件,是基于tcp/ip协议中的tcp和udp协议完成的一个能够完成即时通信和传输文件的软件,该软件实现了局域网内的通行,在不需要使用公网的情况下,使用该软件作为通信和传输文件的工具,既简单又安全。

该软件采用了通信模型中的p2p模型,使用java语言实现,实现原理较简单功能较单一,界面美化度较低。是一款简单的即时通信和文件传输软件。

关键词:计算机网络;p2p ;tcp ;udp ;通信和文件传输软件

目录

1 引言 (1)

1.1课题背景 (1)

1.2国内外现状 (1)

1.3本课题研究的迫切性 (1)

1.4本文的主要工作 (1)

2.需求分析和开发工具 (1)

2.1.需求分析 (1)

2.2开发工具 (2)

3.系统总体结构设计 (3)

3.1基本简介 (3)

3.2系统功能模块设计 (3)

3.3功能模块介绍 (4)

4.系统流程与实现 (5)

4.1系统设计流程 (5)

4.1.1 即时聊天功能的流程设计 (5)

4.1.2 文件传输功能系统实现 (6)

4.2实现 (8)

5 .测试 (10)

结论 (13)

参考文献 (13)

1 引言

1.1 课题背景

网络的发展促进了通信的发中,通信的发展反过来让网络发展的更大更快,通信作为我们日常生活中不可或缺的东西,正在改变着人们的生活。比如说QQ即时通信软件就为人们的生活和学习带来了极大的方便。但是人们有时需要和与自己同一个局域网内的用户通信而通信的内容不通过公网来保证通信的安全,防止黑客或者一些心怀不轨的人通过非法的手段获取到通信的内容。因为一旦信息泄露了就有可能带来不可估量的损失。在这种情况下,基于p2p的即时聊天和文件传输的软件就产生了。

1.2 国内外现状

网络的普及也让一些人获得了获取了更多的信息。通过窃听,篡改,重放等攻击的手机来阻止,或者是窃取别人的有用信息,这种事在一些大型的公司里曾经就发生过。现在一些大型的公司自己会去开发适合自己公司的即时通信软件来防止此类的安全事件出现,因此基于p2p的即时聊天和文件传输的应用开发现在仍然受到关注。1.3 本课题研究的迫切性

基于p2p的即时聊天和文件传输软件的实现能够帮助我们了解基于p2p的软件的实现原理和过程,为我们以后开发一些大型的p2p的软件提供了技术上的保证。同时该软件能够用于局域网的通信和传输文件,具有一定的实际意义。

1.4 本文的主要工作

本文主要介绍了基于p2p的即时聊天和文件传输的软件的实现原理和实现的过程,针对软件的原理和过程进行深入的讲解。同时本文可以作为基于p2p的即时聊天和文件传输的软件的使用说明书,通过具体而详细的阐述,让大家更容易的理解基于p2p的即时聊天和文件传输的软件的实现原理和实现的过程。

2.需求分析和开发工具

2.1.需求分析

由于国内外的安全现状不容乐观,人们通信的时的信息很容易会被黑客们获取,为了在局域网中安全简单的痛信,人们就开发了基于p2p的即时通信和文件传输软件。

该软件能够实现在局域网内和其他人通信,从而保证了通信的安全,让人们拥有更加安全和简单的痛信环境。同时,由于该软件是使用java语言开发,具有平台无关性。

能够在不同的操作系统的平台下完成即时通信和文件传输的功能。

2.2.p2p的即时聊天和文件传输软件的功能

p2p的即时聊天和文件传输软件有以下功能:

(1)局域网内点对点通信,

能够同一时间和多个人,在不同的ip和端口上实现通信

(2)简单文件传输

能够传输1M以上的文件(3)能够在多个平台下实现通信

Java平台无关性

2.2开发工具

开发环境java

开发工具Myeclipse

TCP协议的工作流程下图所示:

服务器端

用socket方法建立套接字

用bind方法把套接字与本

地地址绑定

用Listen方法准备好连接

用accept方法接受连接,

并等待client端连接

如连接已建立,accept返回新的套接字

用Receive和send方法在套接字上做数据交换进行连接数据交换

Shutdown方法用于释放连接

关闭套接字,服务结束用socket方法建立套接字

用connect方法把套接字与server端相连

用Receive和send方法在套接字上做数据交换

Shutdown方法用于释放连接

关闭套接字,服务结束

客户端

UDP 协议的工作流程下图所示:

3.系统总体结构设计

3.1 基本简介

p2p 的即时聊天和文件传输软件采用tcp 和udp 协议,使用java 语言实现基于p2p 的

即时聊天和文件传输的功能。同时,由于采用java 语言实现具备了在多种平台下运行的优点。该软件主要包括两大部分,聊天部分和文件传输部分。聊天部分采用了udp 协议,文件传输部分采用了tcp 协议。

3.2 系统功能模块设计

p2p 的即时聊天和文件传输软件实现了以下功能

(1)即时聊天功能

(2)文件传输功能

(3)记录查询聊天内容 数据传送 用Receive 和send 方法在

套接字上做数据交换 关闭套接字,服务结束 Shutdown 方法用于释放连

接 服务器端 用socket 方法建立套接字 用bind 方法把套接字与本

地地址绑定 用Receive 和send 方法在套接字上做数据交换 关闭套接字,服务结束

Shutdown 方法用于释放连接

客户端

用socket 方法建立套接字 用bind 方法把套接字与本地地址绑定

3.3 功能模块介绍

即时聊天功能采用udp 协议实现。聊天时用户必须输入通信对方的ip 和端口号,对

方只需要知道消息发送方的端口号,就能够收到信息。对方收到信息后,同样必须输入ip 才能回复消息给对方。通信模型如下图

聊天功能实现模型图

文件传输功能是采用tcp 协议实现的,tcp 协议的面向连接,可靠性,面向字节流

等优点,以及差错控制,流量控制等特点,保证了文件传输的可靠性。整个流程是,文件发送方首先选择文件,在选择文件后,先发送文件的名称和大小给接收者。接收这如果同意接收文件则由接收者作为客户端向发送端发起连接,连接建立后,发送端开始传送文件给接收端。实现模型如下图所示

文件传输功能

Port

对方

Ip 软件 软件 Port

对方 Ip 选择文件

发送文件

名和大小 同意接收 连接发送端 开始传送文件

选择文件

保存路径

软件

发送者A 接收者B

4.系统流程与实现

4.1 系统设计流程

4.1.1 即时聊天功能的流程设计

采用DUP协议设计即时聊天功能,在即时聊天功能中,设计了一个发送端和一个接收端,发送端和接收端处于同一个平台中,为了使通信双方能够造一次连接中进行多次通信在接收端采用了多线程,实现多次通信。

在通信建立的时候,通信的发起方首先填写通信的ip地址和port端口,然后发送消息给接收者。接受者需要在同样的端口上等待发起者的信息。

发送端:

开始

从发送窗口中读入数据

Sendmessage调用UDP

DatagramSocket

DatagramPacket

调用Send方法发送数据

调用close方法关闭发送端

结束

发送端工作流程图

接收端:

接收端工作流程图 4.1.2 文件传输功能系统实现

使用TCP 协议实现文件传输功能,在文件传输开始时,由发送方给接收方发送一个消息,消息内容为待发送文件的文件名和长度。接收端收到后判断是不是传送的文件,如果是传送的文件接收方择是否接收文件。然后开始传输文件,文件传输完成后,自动关闭服务器端和客户端。

发送端:

开始

DatagramSocket

DatagramPacket

调用receive 方法接收数据,存入buf 中

调用close 方法关闭接收方

结束

是否收到文件文

进入文件接

收区 显示内容

N

Y

开始

选择文件

发送文件名和文件大小

等待对方接收

是否接收

Y

N

发送文件

调用ServerSocket创建服务器端

调用getOutputStream()发送文件

将文件的内容读取到buf中

通过write(buf, 0, read)方法发送文件内容

关闭发送端serversocket和server

结束

文件传输发送端工作流程

接收端:

开始

接收文件名和文件大小

显示文件名和大小

是否接收

Y

N

创建socket

调用getInputStream()方法接收内容

调用getInputStream发送文件

将文件的内容读取到buf中

将文件写入本地磁盘

关闭客服端

结束

4.2实现

基于p2p的即时通信和文件传输软件的实现是采用窗体的形式。在实现过程中设计到几点主要的功能

首先即时通信功能的发送端的实现,首先创建DUP的socket套接字和UDP

数据报包

在数据包中写入消息发送到接收端。

主要实现代码:

public void send() throws Exception{

DatagramSocket ds2=new DatagramSocket();

DatagramPacket dp2=new DatagramPacket(strmsg.getBytes(), strmsg.getBytes().length,InetAddress.getByName(ip),por

t);

ds2.send(dp2);

ds2.close();

}

接收端,还是创建DUP的socket套接字和UDP数据报包,然后接收数据。

DatagramSocket ds=new DatagramSocket(port);//udp的socket

套接字

DatagramPacket dp=new

DatagramPacket(buf,buf.length);//udp数据报包

ds.receive(dp);

传送文件的实现过程:

发送文件的窗体采用另一个frame完成,在frame中完成了,选择和发送

文件

sendmessage sm = new

sendmessage("file"+filepath.getText().toString(), mainFrame.ip.getText(),Integer.parseInt(mainFrame.port.ge tText().toString()));

sm.send();

ServerSock ss=new

ServerSock(Integer.parseInt(mainFrame.port.getText().toSt ring()),filepath.getText().toString());

ss.start();

选择文件后,发送端使用UDP发送文件名和文件大小给接收端。如果接收端

确认,就开始传输文件

接收后,显示的接收和拒接的信息,以供接收端接收

if(new String(buf).substring(0, 4).equals("file")){

mainFrame.jieshoufile.setText("收到文

件:
"+str+"
是否接收?");

mainFrame.jieshouwenjian.setEnabled(true);

mainFrame.jieshouwenjian.setEnabled(true);

mainFrame.jieshouwenjian.setText("接收");

mainFrame.jujue.setText("拒绝");

}

接收端点击接受后,创建clientsocket去连接服务器端,然后服务器开始传送文件

new Client(jfc.getSelectedFile().getPath())

接收数据

public DataInputStream getMessageStream() throws Exception { try {

getMessageStream = new DataInputStream(new

BufferedInputStream(socket.getInputStream()));

return getMessageStream;

} catch (Exception e) {

e.printStackTrace();

if (getMessageStream != null)

getMessageStream.close();

throw e;

} finally {

}

写入到文件

while (true) {

int read = 0;

if (inputStream != null) {

read = inputStream.read(buf);

}

passedlen += read;

if (read == -1) {

break;

}

5 .测试

软件界面,发送端和接收采用一个软件进行通信。

发送端:

接收端:

文件发送端

文件接收端

结论

基于p2p的即时聊天和文件传输的软件有效解决了局域网内通信的问题,实现了局域网内即时聊天和文件传输。在软件实现的过程充分运用了在网络编程中学习的TCP和UDP的socket编程,并把二者有效的结合。通过这次课程设计,也掌握了文件传输和聊天的过程中的java实现。在设计过程中查阅了相关的java API和一些实现即时聊天和文件传输的例子,从中学习到了很多书本上没有的知识。为自己在以后的软件开发中积累了一些经验。

同时软件的设计和实现过程中也存在很多问题。比如,人机交互界面的设计不是很合理,在文件传输时就不能做其他的事情。没有运用多线程实现等等。这些问题说明了我在平时的学习中还需要合理有效的运用所学知识去设计和实现。

参考文献

[1]甘刚.Linux/NUIX网络编程[M].北京:中国水利水电出版社,2008。

[2] 叶树华.网络编程实用教程[M].北京:人民邮电大学出版社,2010。

[3] 杜佳荣, 马建红, 滕振宇.Java网络编程技术与实践[M].北京:清华大学出版社,2008。

基于C#的P2P聊天程序设计

基于C#的P2P聊天程序设计 【摘要】本文主要是应用C#的Socket类、TcpClient类和TcpListener类来设计实现了基于局域网P2P的聊天程序。 【关键词】C#;P2P;聊天程序 在网络发达的今天,单机的应用程序越来越显示出其局限性,计算机的协同工作C#作为最新一代程序设计语言,有着强大的网络程序开发功能,本文主要应用Socket类、TcpClient类和TcpListener类来实现一个简单的P2P聊天程序的设计。 1、设计所用关键技术 1.1 P2P P2P,是peer-to-peer的缩写,也称对等网络技术,是一种网络结构,在该结构中,用户可以直接连接其他用户的计算机,进行文件共享和信息交换,每一个节点所拥有的权利和义务都是对等的。编写P2P通信程序,通常要做到两点: (1)负责监控的端口上是否有信息发送,如果有则显示出来,同时应该获知信息来自哪。(2)负责将信息发送到指定地点,以便进行通信。 1.2 Socket类 Socket称为套接字,它提供了接收对方发送的信息和发送数据到目标设备的功能。在使用套接字与远程设备进行通信之前,必须使用协议和网络地址信息初始化套接字。 1.3 TcpClient类和TcpListener类 TcpClient类专为客户端设计,它为TCP网络服务提供客户端连接,构建于Socket类之上,从而可以提供较高级别的TCP服务,即提供了通过网络连接、发送和接收数据的简单方法。TcpClient使用标准的Stream流处理技术来完成网络数据的发送和接收,可以通过NetworkStream来完成数据的发送和接收。NetworkStream可以被视为一个数据通道,架设在数据来源端和接收端之间,数据的读取和写入均可通过这个通道完成。 TcpListener类负责监视TCP端口上的传入请求,通过ExclusiveAddressUse 属性获取或设置一个Boolean值,指定TcpListener是否允许一个基础套接字来监听特定端口,然后通过绑定本机的IP地址和相应端口创建TcpListener的对象实例,执行Start方法启动侦听。当TcpLitener侦听到用户端的连接后,根据客户端不同的请求方式,应用AcceptTcpClient方法接收传入的连接请求,然后创建

JAVA局域网聊天系统源代码

这是我自己做的简单聊天系统客户端 package LiaoTianSys; import java.awt.*; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; import https://www.360docs.net/doc/4d9708437.html,.Socket; import https://www.360docs.net/doc/4d9708437.html,.UnknownHostException; public class ConversationFrame extends JFrame { JScrollPane jsp; JTextField jtf; static JTextArea jta; //JTextArea jat1,jta2; JButton enter=new JButton("发送"); JButton jb=new JButton("聊天室好友"); JButton jb2=new JButton("进入聊天室"); JButton jb3=new JButton("刷新在线人员列表"); JPanel jp,jp1,jp3,jp4; DefaultListModel listmodel = new DefaultListModel(); //static String[] NAME=new String[10]; String n[]={"f"}; JList list=new JList(listmodel); JLabel time=new JLabel("当前系统时间:"); JLabel showtime=new JLabel("显示时间"); JLabel jl=new JLabel("输聊天信息"); JLabel nicheng=new JLabel("昵称"); JTextField NCshuru=new JTextField(10); static DataOutputStream dos; static DataInputStream dis; //final LoginFrame lf; Socket socket; public ConversationFrame() { Container con=getContentPane(); con.setLayout(new BorderLayout()); jp=new JPanel(); setSize(700,600); setLocation(100,100); jta=new JTextArea(); jta.setEditable(false);

局域网控制软件

局域网控制软件 局域网控制软件是指具有带宽管理(基于用户、应用、时间优化带宽),上网行为的审计与控制(各种网站的访问、IM、P2P、流媒体等应用)、上网内容的审计与关键字过滤(如对邮件、Webmail、外发的博客、IM、FTP等内容做记录)等基本作用的员工上网控制软件。如今,可基本将此软件细分为上网控制软件、内网控制软件、文档加密软件等三类,比如百络网警局域网控制软件与网络人远程控制软件。 局域网控制软件是针对网络带宽滥用、企业关键应用无法保证等问题而开发的专业网络管理软件,可以控制网络流量的分配;对局域网电脑进行监控;分配、开启、关闭网络端口。可以增加企业的网络线路的安全,并且控制整个网络的流量。配置局域网控制软件需要对网络线路极其了解,否则容易发生掉线。 百络网警局域网控制软件功能 1、外设及端口管理控制 管理人员可以根据需要对局域网内电脑的各种输入/输出设备接口进行开放或禁止,包括:刻录机、磁盘驱动器、串/并口、调制解调器、USB等各种接口。 2、网络应用控制 管理人员设置记录所有网络访问操作,软件根据安全策

略决定是否允许相应的网络行为,可以阻止计算机运行某些指定的应用程序或浏览指定的网站。 3、实时电脑行为控制 管理人员可以实时查询文件操作、屏幕快照、应用程序、网站浏览等情况,并且可以做出实时响应。 4、远程控制 管理人员可以通过软件控制台远程取得客户机的控制权,对于远端客户机出现的问题,管理人员能够即时、方便的解决,在远程维护或者远程操作业务系统中发挥多方面的作用。 5、软件分发控制 针对一些需要安装的软件和系统补丁,管理人员可以通过软件分发的形式方便、快速的完成,省去许多奔波、重复之累。 6、运行统计 软件会生成管理人员所关心的电脑应用的各种统计报告,从而对电脑使用情况进行评估,可提供如下查询:网站访问记录、应用程序记录、文件使用记录、屏幕快照记录。 7、客户端控制 提供了对在线受控电脑的部分功能控制,如对受控电脑进行发送消息、电脑锁定、电脑用户注销、电脑进行重启动。 8、系统资源管理控制

即时通讯软件的设计与实现

即时通讯软件的设计与实现 1 系统实现模块 1.1 服务端模块 服务端主要包括三个模块: 1.网络模块,建立TCP服务器,负责监听端口,与客户端建立连接并接受和发送数据。 2.应用模块,负责处理从网络模块接收到的数据,予以分析处理,进行转发或对数据库进行操作,并返回相关信息。 3.数据层,数据层用来与数据库建立连接,应用模块必须通过数据层来进行数据库的操作。 日志记录 图4.1 系统模块图 1.2 客户端模块 用户端包块以下模块: 1.用户界面模块,此模块包括客户端的操作界面,由NetBeans编写的GUI,进行了较多的美化,采用偏向Vista的风格。 2.网络模块,此模块包括两个小模块,TCP模块用于和服务器端通讯,而UDP 模块则负责和客户端进行P2P通讯。 3.聊天模块,此模块负责在用户聊天时候,对聊天的数据进行封装,对聊天的图片也进行压缩,以适用网络传输。在接受到聊天数据之后,又会对聊天数据进行分解操作,最后生成聊天内容。 4.群组模块,此模块包括群组聊天、群组的创建、管理、更新等功能。 5.文件传输模块,此模块用于实现客户端之间的文件传输功能。 6.视频聊天模块,此模块用于实现客户端之间的视频聊天功能。 7.系统设置记录模块,此模块用于实现保存聊天记录,登录日志,以及保存系统设置信息的功能。 系统记录模块 图4.2 客户端模块图 2 数据库设计 2.1用户表设计 用户表是系统中的基础表,主要用来记录用户注册时的各种信息,此表还有一个从表userlogin表用来记录用户登录和状态信息。[12] Userinfo表

UserLogin表 用户关系表是用来保存用户之间的好友关系的数据表,查询好友列表的时候要从此表中查询与自己ID想关联的好友ID,type字段可以设置两者的关系,其中1为好友关系,0为黑名单。 其他表,如组群表,族群信息表就不在此一一列出。 3 系统模块的详细设计 此章节将叙述系统部分模块的设计方法和具体实现。 3.1 网络模块的设计实现 本系统采用TCP和UDP混合的网络通讯,客户端与服务器之间登录验证时采用TCP连接,登录之后,客户端与服务器采用UDP方式保持通讯,客户端和客户端之间采用UDP连接,如果无法直接连接,通过服务器申请UDP穿透NAT,如果失败,则消息通过服务器中转传递。

局域网共享管理软件之大势至共享文件夹管理软件V4.1使用说明

局域网共享管理软件之大势至共享文件夹管理软件V4.1使用说明 作者:网络喵日期:2015年11月30日 大势至共享文件夹管理软件是一款专门保护局域网共享文件访问的软件,可以防止复制共享文件、禁止删除共享文件、禁止将共享文件另存为本地、禁止打印共享文件等,还可以监控用户的操作记录,可以禁止U盘复制共享文件、禁止将共享文件通过邮件、网盘、FTP上传、QQ发送文件等方式泄露出去,全面保护企业共享文件的安全。 大势至共享文件夹管理软件V4.1使用说明: 1、软件安装 大势至共享文件夹管理软件(百度搜索自己下载吧)基于B/S架构,纯绿色免安装设计,只需要将本程序复制在设置了共享的电脑或服务器上即可使用,局域网其他电脑不需要安装,也不需要调整网络结构。(注:对共享文件进行保护之前,需要先停止共享,否则无法对文档进行加密保护)如下图所示: 图:对文档保护之前需要停止共享,否则无法加密保护 2、选择文件 点击软件界面右上角的“浏览”按钮,找到需要管理的共享文件夹,选中,然后点击“确定”,如下图所示:

3、用户列表及权限设置 共享文件夹添加到被保护的文件夹路径中后,左侧的“用户列表”会出现当前电脑或服务器上所有的用户账户,根据自己的需要点击某个账户(或者不点击,则默认是所有用户)。右侧的“访问共享文件权限设置”,可以勾选想要赋予用户访问共享文件的各种权限。 软件默认只开启了“读取”权限,即所有访问共享文件的用户都只能打开、读取共享文件,而不能进行复制、修改、剪切、重命名、打印等操作。 例如,在左侧的“用户列表”选中“Administrator”账户,然后在右边勾选相应权限(复制、修改、删除等),即“Administrator”账户就具有了上述操作权限。没有选中下面的“Guest”账户,则其只有“读取”权限。选中了用户名和对应的共享文件访问权限之后,还需要点击下面的“保护”,这样就完成设置了。如下图所示:

局域网聊天系统(详细设计)

局域网聊天系统 详 细 设 计 成绩:

目录 1.功能需求 (1) 2.数据库设计 (1) 2.1 基本表设计 (1) 2.1.1 表结构汇总 (1) 2.1.2 T_Users表结构设计 (2) 2.1.3 XXX表结构设计 (2) 2.2 视图设计 (2) 2.2.1 视图汇总 (2) 2.2.2 XXX视图设计 (2) 2.3 存储过程设计 (3) 2.3.1 存储过程汇总 (3) 2.3.2 XXX存储过程代码 (3) 3.服务器端设计及实现 (3) 3.1 启动服务器功能的设计与实现 (3) 3.1.1 界面设计 (3) 3.1.2 流程 (4) 3.1.3 关键代码 (4) 3.2 消息管理功能的设计与实现 (4) 3.2.1 界面设计 (3) 3.2.2 流程 (4) 3.2.3 关键代码 (4) 4.客户端的设计与实现 (5) 4.1 注册模块的设计与实现 (5) 4.1.1 界面设计 (5) 4.1.2 流程图 (6) 4.1.3 关键代码 (6) 4.2 登陆功能的设计与实现 (6) 4.2.1 界面设计 (5) 4.2.2 流程图 (5) 4.2.3 关键代码 (6) 4.3 聊天功能的设计与实现 (7) 4.3.1 界面设计 (8) 4.3.2 流程图 (8) 4.3.3 关键代码 (9) 5.人员及分工 (9)

局域网聊天系统 详细设计1.功能需求 图 1 项目功能结构图2.数据库设计 2.1 基本表设计 2.1.1 表结构汇总 表 1 基本表汇总

2.1.2 T_Users表结构设计 表 2 用户表(T_Users)结构设计 2.1.3 XXX表结构设计 表 3 XXX(xxx)结构设计 2.2 视图设计 2.2.1 视图汇总 2.2.2 XXX视图设计

局域网点对点通信软件设计与实现

《网络编程技术》 课程设计报告 课程设计题目:局域网点对点通信软件与实现作者所在系部:计算机科学与工程系 作者所在专业:网络工程 作者所在班级: 作者姓名: 作者学号: 指导教师姓名: 完成时间: 2013年07月10日

课程设计任务书

摘要 所谓网络中的点对点通信是实现网络上不同计算机之间,不经过任何中继设备而直接交换数据或服务的一种技术。由于允许网络中任何一台计算机可以直接连到网络中的其他计算机,并与之进行数据交换,这样既可以消除中间环节,也使得网络上的沟通变的更加容易、更加直接。本文介绍的是一种是用Winsock编程技术,基于TCP/IP协议的、面向连接的流式套接字网络通信编程设计。 局域网即时通讯软件使用TCP协议作为传输层的协议,采用点对点模式服务,不需要服务器支持,使局域网用户的使用更加方便和高效。它可以实现局域网用户的自动检测,用户间文本信息的交流,文件的传输等功能。 本系统使用Visual Studio 2010作为开发工具,将.NET中的一些技术运用到系统中关键词:点对点;TCP/IP;Socket;UDP;P2P

目录 摘要 (2) 目录 (3) 第1章绪论 (4) 1.1课题研究现状分析 (4) 1.2选题的目的及意义 (4) 第2章系统需求分析 (5) 2.1 问题的提出 (5) 2.2 系统的设计目标 (5) 第3章系统总体设计 (6) 3.1系统功能设计 (6) 3.2功能模块的说明 (7) 3.2.1初始化(广播用户信息) (7) 3.2.2用户列表管理 (7) 3.2.3文本信息传输 (7) 3.2.4文件传输 (7) 3.2.5发送心跳包 (7) 第4章系统实现 (8) 4.1初始化模块的设计和实现 (8) 4.1.1监听端口 (8) 4.2 广播消息 (8) 4.3 文本消息的发送和接收 (9) 4.4 文件的发送和接收 (12) 4.5发送心跳包 (14) 第5章课程设计总结 (16) 5.1 主要问题及解决办法 (16) 5.2 课程设计体会 (16) 5.3 自我评定 (16) 参考文献 (17)

p2p原理

P2P之UDP穿透NAT的原理与实现(附 源代码) P2P 之 UDP穿透NAT的原理与实现(附源代码) 原创:shootingstars 参考:https://www.360docs.net/doc/4d9708437.html,/draft-ford-midcom-p2p-01.txt 谁先动,谁吃亏 论坛上经常有对P2P原理的讨论,但是讨论归讨论,很少有实质的东西产生(源代码)。呵呵,在这里我就用自己实现的一个源代码来说明UDP穿越NAT的原理。 首先先介绍一些基本概念: NAT(Network Address Translators),网络地址转换:网络地址转换是在I P地址日益缺乏的情况下产生的,它的主要目的就是为了能够地址重用。NAT分为两大类,基本的NAT和NAPT(Network Address/Port Translator)。 最开始NAT是运行在路由器上的一个功能模块。 最先提出的是基本的NAT,它的产生基于如下事实:一个私有网络(域)中的节点中只有很少的节点需要与外网连接(呵呵,这是在上世纪90年代中期提出的)。那么这个子网中其实只有少数的节点需要全球唯一的IP地址,其他的节点的IP地址应该是可以重用的。 因此,基本的NAT实现的功能很简单,在子网内使用一个保留的IP子网段,这些IP对外是不可见的。子网内只有少数一些IP地址可以对应到真正全球唯一的IP地址。如果这些节点需要访问外部网络,那么基本NAT就负责将这个节点的子网内IP转化为一个全球唯一的IP然后发送出去。(基本的NAT会改变IP 包中的原IP地址,但是不会改变IP包中的端口) 关于基本的NAT可以参看RFC 1631 另外一种NAT叫做NAPT,从名称上我们也可以看得出,NAPT不但会改变经过这个NAT设备的IP数据报的IP地址,还会改变IP数据报的TCP/UDP端口。基本NAT的设备可能我们见的不多(呵呵,我没有见到过),NAPT才是我们真正讨论的主角。看下图: Server S1 18.181.0.31:1235 | ^ Session 1 (A-S1) ^ | | 18.181.0.31:1235 | | v 155.99.25.11:62000 v | |

局域网文件共享服务器搭建初稿方案

局域网文件共享服务器搭 建初稿方案 Prepared on 22 November 2020

局域网文件共享服务器搭建初稿方案一.需求分析 1.公司有7个大部门,分别为:综合部、技术部、质量部、生产部、采购物流部、商务部、财务部。 2. 各部门的文件夹只允许本部门员工有权访问;各部门之间交流性质的文件放到公用文件夹中。 3. 每个部门都有一个管理本部门文件夹的管理员账号和一个只能新建和查看文件的普通用户权限的账号。 4. 公用文件夹中分为存放共享各部门的文件夹和工具软件文件夹。 5. 对于各部门自己的文件夹,各部门管理员具有完全控制权限,而各部门普通用户可以在该部门文件夹下新建文件及文件夹,并且对于自己新建的文件及文件夹有完全控制权限,对于管理员新建及上传的文件和文件夹只能访问,不能更改和删除。不是本部门用户不能访问本部门文件夹。 6. 对于公用文件夹中的各部门共享文件夹,各部门管理员具有完全控制权限,而各部门普通用户可以对文件夹进行访问查看,但不能更改和删除。本部门用户(包括管理员和普通用户)在访问其他部门公共共享文件夹时,只能查看不能修改、删除、新建。对于存放工具软件的文件夹,只有管理员有权限,其他用户只能访问。 二.规划 根据公司需求情况,现做出如下规划: 1. 在系统分区时单独分一个Company的区,在该区下有以下几个文件夹:综合部、技术部、质量部、生产部、采购物流部、商务部、财务部、公共文件。在“公共文

件”下又有以下几个文件夹:综合部、技术部、质量部、生产部、采购物流部、商务部、财务部、工具软件。 2. 各部门对应的文件夹由各部门自己管理,工具软件文件夹由管理员维护。 3. 账号角色划分为超级管理员组、部门管理员组、普通用户组。 超级管理员组用户账号: superadmin; 部门管理员组包含用户 综合部管理员账号:zhbadmin;密码: 技术部管理员账号:jsbadmin;密码: 质量部管理员账号:zlbadmin;密码: 生产部管理员账号:scbadmin;密码: 采购物流部管理员账号:cgbadmin;密码: 商务部管理员账号:swbadmin;密码: 财务部管理员账号:cwbadmin;密码: 普通用户组分 为:zhbuser;jsbuser;zlbuser;scbuser;cgbuser;swbuser;cwbu ser 密码:和各普通用户名对应的一样。 文件夹之间的关系请见下图: 三.文件共享服务安装和配置 1.安装文件服务器 2.用户角色配置 Step1 在桌面上用鼠标右键单击【我的电脑】图标,在弹出的快捷菜单中选择【管理】命令。打开“计算机管理”窗口,在左窗格中展开【本地用户和组】目录。然后用鼠

基于JAVA局域网聊天程序设计与实现(附源代码)

局域网聊天课程设计 摘要 随着互联网的发展,网络聊天工具作为一种交流工具,已经受到网民的青睐。目前,出现了很多功能强大的聊天工具,其中应用比较广泛的有腾讯QQ、MSN-Messager等等。 即时通讯软件,是每一个上网用户都需要的工具,它除了能够让您迅速地在网上找到自己的朋友和伙伴之外,还可以实时交谈和传递信息,截止到目前,全球约有近3亿多人使用即时软件,正因为即时通讯软件拥有数以亿计的用户和增长的市场,所以各个公司都盯上了这个最大的市场,一时间,即时通讯市场硝烟四起。 对等网络(peer-to-peer,简称P2P),应用最初出现时和现在并不相同。事实上可以认为它是若干不同技术以及流行趋势相结合的产物。以下是导致P2P技术发展最重要的趋势:首先,一些新技术与软件工程的结合,形成了一种将工作分散的趋势。P2P计算正是这种分散工作趋势的结果。其次,在企业应用集成等因素的驱动下,过去十年渐渐形成从集中的单机系统转向分布式系统。然而随着互联网的发展,全面的分布式计算也就成为一种迫切需求。 关键词:局域网聊天 P2P java

Abstract With the development of the Internet,the chat tool as a communication tool, has been popularly accepted by netizens of all ages. At present, there are many powerful chat tools, of which Tencent QQ, MSN-Messager are much more prevalent. Instant messaging software is necessary for every one who connects to the internet, which can not only provide you a prompt way to find friends and partners online, but can provide you the convenience of internet relay chat and information delivering. Up to now, there are about 300 million people using real-time software all over the world. As more and more corporations have focused on this market with growing potential, which has hundreds of millions of uses, the competitions among these corporations are extremely fierce. The initial application of peer-to-peer network (peer-to-peer, referred to as P2P) is not the same as it is now. In fact, it can be regarded as a combination of different technologies and fashion trends. Below are the most important trends that have led the development of P2P technology: First of all, the integration of software engineering and new technologies led to a working dispersion trend. As a result, P2P computing was born. Then, in the past decade, it has turned fro m a single centralized system to distributed system due to the motivation of factors such as enterprise application integration. At last, with the development of the Internet, however, a comprehensive distributed computing has become an urgent need. Keywords:LAN chat P2P java

即时聊天工具

一:腾讯QQ 【简介】:腾讯公司成立于1998年的11月12日,次年即1999年2月就推出了仿照ICQ软件的中国版IM工具OICQ,它可以说是QQ的前生。时至今日,腾讯已经成为中国软件行业的巨无霸,QQ的大名更是无人不知,没人不晓,差不多每个网友都拥有一个QQ号。至于说腾讯QQ为什么能取得如此辉煌的成功,应该是一半靠的是实力,另一半靠的是运气。 【特色】:说老实话,腾讯QQ最大的特色也是其最大的优势,应该就是其无比庞大的用户数量。而就它的功能来说,可以说是青出于蓝而胜于蓝,并且已经到达了一个相对的顶峰。其操作简单,支持实时的音视频聊天,支持大文件传输、深入人心的群功能,以及精彩的在线游戏等多种增值功能,让它已经成为了一个时代的标志! 点评】:QQ可以说是中国IT行业的骄傲,它功能强大丰富、操作简单而易用,娱乐性很强,它的身影已经遍布中国的大街小巷。对很多人来说,上QQ、玩QQ已经成为生活的一部分。虽然它有很多收费项目让不少用户一直抱怨,但真的想要离开它却发现又不是那么容易的事情! 二:微软MSN(Windows Live Message) 【简介】:微软公司创建于1975年,是全球最大的电脑

软件提供商,得益于Windows系列操作系统,使其成为全球软件行业的霸主。它的软件产品众多,1999年7月推出了网络即时信息客户程序MSN Messenger。目前MSN(从8.0开始新版本改名为Windows Live Message)可以说是国外IM领域最为流行的IM客户端之一,而在中国它的市场份额也一直处于前列,但却始终无法超越QQ。 【特色】:MSN是一种优秀的即时通信工具,它基于Microsoft 高级技术,可使您和您的家人更有效地利用 Web进行通信。目前MSN Messenger的最新版本是Windows Live Messenger 2009,它仍包含您所喜爱的Messenger 的一切功能:如联系人名单、图释以及使用文本、声音和视频与您的朋友即时联系。此外,它还提供了轻松连接并共享照片和文档的新方式。可惜,Windows Live Messenger中用户无法进行好友查找;【点评】:和QQ不同,MSN的特色之处在于它的严肃和保守性,这使得它更受企业用户所青睐,同时这也使得它的用户群更集中在公司的白领职员中,而这也是MSN的市场占有率始终停步不前无法超越QQ的主要原因。并且它的界面及操作和QQ相比风格差别比较明显。而新版的Windows Live Messenger为了打破这种局面,加入了更多有趣功能,但就娱乐性而言仍然无法和QQ相提并论; 三:百度Hi

基于Qt的p2p局域网聊天和文件传输软件要点

基于Qt的局域网聊天和文件传输软件设计 摘要 随着计算机网络技术的飞速发展,人们对于网络的依赖性也越来越大。通过网络的局域网通信也越来越受到人们的喜爱,比如说现在非常流行的QQ局域网通信软件就解决了人们在网络中交流的需求。 基于Qt的P2P局域网聊天和文件传输软件,是基于TCP/IP协议中的TCP 和UDP协议完成的一个能够完成局域网通信和传输文件的软件,该软件实现了局域网内的通信,使用该软件作为通信和传输文件的工具,既简单又安全。 关键词:计算机网络, TCP, UDP , 文件传输; Abstract With the rapid development of computer network technology, people are more and more dependent on the network. Instant messaging via the Internet has become more and more popular, for example, it is now very popular QQ instant messaging software to solve the needs of people in the network communication. Based on P2P instant chat and file transfer software is based on TCP / IP protocol in the TCP and UDP protocols to complete a to complete the instant messaging and file transfer software, the software realized the LAN communication, the use of the software as a communication and file transfer tool, which is simple and safe. Key word:computer network,TCP, UDP , file transfer;

局域网文件共享软件Mobox实现企业文档管理

局域网文件共享软件Mobox实现企业文档管理 随着信息技术的发展和网络的普及,各类企业每天都会有各种应用系统在产生大量的电子文档,如设计图纸、销售订单,合同文本,等等。如何利用、管理种类日趋繁多的电子文档已成为如何提升企业管理绩效的一大课题。局域网文件共享软件帮助企业解决这一难题。 其实,绝大部分企业不管是否有很强的文档管理意识,都或多或少地在做文档管理和文件共享的相关工作。比如有的公司采用FTP服务器作为企业的文档存放空间。 有的企业在内网用一台windows服务器做文件共享等等。但是全面有效管理企业文档管理来说,还是不够的或者说没有形成一个很好的由简到繁的管理体系。 局域网文件共享软件Mobox,一站式满足文件的安全存储、高效协同、移动办公等各种不同的业务需求,在保护企业内容资产安全的基础上,为广大企业提供安全、高效、便捷的文件使用环境。 Mobox享存就是提供了一整套适合企业电子文档管理 的由简到繁整体解决方案。 Mobox三步曲:

文档集中网络存储 个人网盘 1)首先将分散在个人机器上的文件有序集中网络存储,实现网络存储备份 文档共享管理 部门级文档管理 2)其次实现个人或部门级别的文件共享、权限管理 文档管理 企业级文档管理目前还没有提供 最终实现企业级的文档管理,全文检索、流程控制、版本控制等 Mobox 、Mobox个人网盘实现功能 1)为个人提供一个网络存储空间网络硬盘 2)将重要文件备份到网络硬盘 3)将个人文件共享给他人 2、Mobox个人网盘功能

与windwos本地盘文件操作基本一致无需培训部署后就能使用可以与AM 无缝集成 3)网盘在企业内部部署员工可以在不上外网的情况下也 能直接使用企业分配给他的网络硬盘。其次,享存MoBox 可以将网络硬 盘服务映射到外网,这样若有员工出差在外,也可以直接使用企业内部 的网络硬盘空间了。 2)信任及安全 因为是企业提供给企业员工内部使用的,所以系统不会有广告信息。有 的也是企业本身的公告及通知。当然,这些重要的工作文件敏感文件

java编写的简单局域网聊天室(适合初学者).

import java.awt.BorderLayout; import java.awt.Button; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.Frame; import java.awt.Panel; import java.awt.Point; import java.awt.TextArea; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.File; import java.io.FileWriter; import java.io.IOException; import https://www.360docs.net/doc/4d9708437.html,.DatagramPacket; import https://www.360docs.net/doc/4d9708437.html,.DatagramSocket; import https://www.360docs.net/doc/4d9708437.html,.InetAddress; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public class GUI_Chat extends Frame { private static final long serialVersionUID = 1L; private TextArea viewTextArea = new TextArea(20, 1; private TextArea sendTextArea = new TextArea(; private TextField ipTextField = new TextField(20; private Button sendButton = new Button(" 发送" ; private Button clearButton = new Button(" 清屏" ; private Button logButton = new Button(" 记录" ; private Button shakeButton = new Button(" 震动" ; private Panel panel = new Panel(; private DatagramSocket socket ;

局域网的纯软件串口通信

局域网的纯软件串口通信 武汉波仕电子有限公司________ 串口通信,就是RS-232/RS-485通信,要求通信专用的电缆或者光纤才可以通信成功。可是在许多情况下,计算机本身已经用以太网电缆连接起来布成为了一个局域网,需要利用这个局域网进行计算机的串口通信。就是说要求局域网内的任何一台计算机的串口可以与其它计算机的串口进行通信。这种情况下,可以无需再布专门的串口通信线,用纯软件进行以太网格式与串口格式的转换。本文介绍了如何用纯软件实现局域网串口的通信。 如果接PC1的串口设备1与接PC2的串口设备2之间需要通信,但是它们之间没有直接连接而是通过计算机的以太网线。纯软件实现以太网串口通信的原理就是利用计算机本身的网口和串口,将网口收到的数据送到串口,同时将串口收到的数据送到网口。PC1与PC2之间由于位于一个局域网内所以可以进行以太网口之间的通信,所以就间接地实现了串口设备1与串口设备2之间的串口通信。其中串口设备1将数据按照串口格式发送给PC1,PC1接收数据并用软件立即从以太网口发送出去给PC2的网口,同样PC2从以太网接收到数据并立即用软件按照串口格式发送给串口设备2。反过来也一样,可以实现数据的双向通信。 好灵通是一种能够实现串口硬件控制的即时通信软件,不仅仅能够即时交换信息,而且还能够对远端的串口设备进行控制。是具有串口硬件控制功能的即时通信产品。局域网版的好灵通v11可以在同一局域网段内部实现即时通信和串口控制,可以是在有线的以太网,也可以是在无线WIFI以太网内等。是一款很实用的局域网通信及串口控制工具,可以发送文字、文件、对话等、还可以设置串口COM号、波特率等。可以实现有线或无线局域网内串口的透明传输。甚至不同波特率和格式也可以。 运行好灵通setup安装完毕后,运行程序:好灵通v11.exe,先进入如下登录界面:

聊天软件需求分析

编号:__001____________ 版本:____1.0__________ <即时通讯> 需求分析说明书 委托单位:付勇智 承办单位:冰点开发小组 编写:(签名)____李超__________ 2007 年 4 月 11 日 复查:(签名)______聂润声_______ 2007 年 4 月 13 日 批准:(签名)____翁靖凯_________ 2007 年 4 月 13 日

聊天软件需求分析说明书 1.引言 1.1编写目的 本需求规格说明书编写的目的是为了清晰地说明本小组开发《聊天软件》要实现的所有功能。同时也为软件使用者和软件开发者之间建立共同的需求目标,进行一定程度的交流沟通。同时对软件所需实现的功能模块做了全面的描述。它是后续开发工作和验收工作的依据文件。软件使用者和软件开发者以此为共同的基础。 1.2项目背景 随着网络的普及,人类生活越来越依赖网络,人与人之间的交也更多的是在网络上进行,于交流的实时性,即时通讯系统也被越来越多的人所使用。 即时通讯系统除了普通的生活上的交流,也在商业交流中越来越受到重视,它可以是 个很好的与客户之间即时交流的平台,在时间上它要比电子邮件更加具有实时性,而费用相对 电话交流也要经济的多。 在这种环境下,聊天软件作为一种即时通讯工具,得到了很好的发展。 1.3任务描述 1.3.1目标 开发一个即时通讯软件,能够即时发送接受信息,操作简单,能良好的运行。 1.3.2条件与限制 开发时间:三个月 开发环境:J2SE SDK1.5,NetBeans5.5.1,JBuilder2006,MS SQL SERVER 2005 1.3.3 需求 交流者身份的确定,即交流双方需要各自确定允许与对方交流才能交流;交流信息的加密,即不允许他人窃听双方的交流信息;点对点交流(私聊),一次对话的对象只是一个人;同时可以利用本系统形成的P2P(peer to peer,点对点)网络进行用户间的文件传输,进行资源的共享。 2.功能描述

WIN7和XP系统在局域网文件共享设置方法

WIN7/XP系统在局域网文件共享设置方法 现代家庭,多数都有2台以上电脑,我家就有两台笔记本,一台台式机。笔记本因为买得晚通常配置较高,一般装的是WIN7系统,而台式机配置因为买的早配置相对较低,一般装的是XP系统。有时候想把台式机中的文件移到笔记本上,亦或是把笔记本中的文件移到台式机上,如果文件小用个U盘也挺方便,如果是几个G或者几十个G的话你会不会觉得相当纠结?学习了本文的设置方法你就再也不需要纠结了。好了,废话少说,现在开始学习局域网中文件共享的设置方法。 Windows XP和Windows 7系统的计算机通过局域网互联时,经常出现安装Windows XP系统的计算机很难在网上邻居中找到安装Windows 7系统的计算机的情况,反之也一样。具体表现就是网上邻居中可以显示计算机名但无法访问,或者根本找不到对方的计算机。 问题分析 在访问权限方面,WIN7确实做了诸多限制,通过对WindowsXP 和Windows7操作系统的设置,可以实现Windows 7 和Windows XP系统的局域网互连互通以及文件共享。 设置前必须先要关闭系统的防火墙(Mcafee、诺顿等)。若必须使用防火墙功能,建议用户咨询一下杀毒软件公司具体的局域网的权限设置方法。

解决方案 一、WindowsXP系统的设置方法: 设置共享可能对你电脑中的资料安全有负面影响,自己要对保密、安全、共享之间作个平衡。为了提高安全性,建议使用NTFS 磁盘格式,并对隐私文件设置读写权限。 1、WIN7系统设置方法: 选择要共享的文件夹 电脑常识 右键点击文件夹属性

设置文件夹高级共享选项

局域网内的多功能聊天室的设计与实现

JISHOU UNIVERSITY 专业课课程论文题目:局域网内的多功能聊天室的设计与实现 作者: 学号: 所属学院:信息科学与工程学院 专业年级: 总评分: 完成时间: 吉首大学信息科学与工程学院

局域网内的多功能聊天室的设计与实现 局域网内的多功能聊天室的设计与实现 (吉首大学信息科学与工程学院,湖南吉首 416000) 摘要 在计算机技术飞速发展的今天,随着Internet的普及和发展,人们的生活和工作也越来越离不开信息网络的支持,而聊天室是人们最常见、最直接的网上交流的方式。本论文主要研究一个以网络交友为主,为广大用户提供一个借助网络进行人际交往的信息平台。 本文所设计的局域网聊天系统是基于开放的WEB服务器应用程序开发设计的,其主要特征是能动态完成信息的传递且具有高效的交互性,有效的处理客户请求且具有更简单、更方便的数据库访问方法,易于维护和更新。这种技术程序由JAVA、HTML、数据库和脚本语言组合而成。主要功能模块包括:用户登录、注册部分;编写和显示聊天记录部分;管理员管理聊天室的管理部分。聊天系统编写和显示聊天记录部分界面友好,提供动作、表情、公聊或私聊等操作;管理部分可以删除不守规矩的注册用户、踢出在线用户以及删除某些不合时宜的聊天记录等、根据数据库需求分析,在ACCESS中定义3个表:用user表来存放注册用户信息、用activetable 表来存放当前在线用户信息以及用message表来存放聊天记录。本系统相比较其他信息交流平台具有开发方便、快捷,占用资源少,维护方便等优点。 【关键词】Java,数据库,脚本语言,聊天系

LAN of multi-function chat room design and Implementation Raotao (College of Information Science and Engineering,Jishou University,Jishou,Hunan 416000) Abstract The rapid development of computer technology today, with the popularity and development of Internet, people's work and life has become increasingly inseparable from the support of the information network, and the chat room is one of the most common, the most direct online communication mode.In this thesis, a network of friends, for the vast number of users with a network of have the aid of interpersonal information platform. The design of the LAN chat system is based on an open WEB server application development and design, its main characteristic is to complete the information transmission dynamically with high interactivity, effective customer request and has a more simple, more convenient database accessing method, easy maintenance and update.The technical program by JAVA, HTML, database and script language and combination.The main function modules include: user login, registration section; write and display chat recording part; the administrator manage the chat room management section.Chat system to prepare and display chat interface friendly, with action, expression, the public chat or operation; management can remove the unruly registered user, play online user and delete certain be inopportune or inappropriate chat records, according to the database needs analysis, defined in ACCESS 3: user table table for registered users of information, using activetable table to store the current online user information and the use of message table to store the chat record.This system is compared with other information exchange platform with the development of convenient, fast, less resource occupation, easy maintenance and other advantages. Key words:JA V A; data capture; information analysis ; Winpcap;Jpcap

相关文档
最新文档