网络编程课程设计简单的聊天室程序设计Word文档格式.docx

上传人:b****0 文档编号:12964314 上传时间:2022-10-01 格式:DOCX 页数:15 大小:62.13KB
下载 相关 举报
网络编程课程设计简单的聊天室程序设计Word文档格式.docx_第1页
第1页 / 共15页
网络编程课程设计简单的聊天室程序设计Word文档格式.docx_第2页
第2页 / 共15页
网络编程课程设计简单的聊天室程序设计Word文档格式.docx_第3页
第3页 / 共15页
网络编程课程设计简单的聊天室程序设计Word文档格式.docx_第4页
第4页 / 共15页
网络编程课程设计简单的聊天室程序设计Word文档格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

网络编程课程设计简单的聊天室程序设计Word文档格式.docx

《网络编程课程设计简单的聊天室程序设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《网络编程课程设计简单的聊天室程序设计Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。

网络编程课程设计简单的聊天室程序设计Word文档格式.docx

目录

一、引言……………………………………………………………2

2、基础理论………………………………………………………2

1、UDP协议简介…………………………………………………2

2、系统需求分析……………………………………………………3

三、功能设计………………………………………………………4

1、设计目的……………………………………………………4

2、设计要求……………………………………………………4

4、系统实现……………………………………………………5

1、原理概述……………………………………………………5

2、程序设计流程………………………………………………5

五、设计过程…………………………………………………6

1、程序设计流程及源代码……………………………………6

源代码…………………………………………………………6

主机A………………………………………………………6

主机B………………………………………………………10

2、调试分析过程描述…………………………………………15

3、结果分析……………………………………………………15

六、结论……………………………………………………………16

[参考文献]…………………………………………………………16

一、引言

随着计算机科学和Internet的飞速发展,网上聊天室已成为人们相互交流的一种方式,与E—mail电话相比,聊天服务更具有实时性和有效性。

本课题是java基于UDP协议的聊天程序。

聊天室分为客户端和服务器端,服务器端程序主要用来负责侦听客户发来的消息,客户端需要等服务器登录成功以后检测到服务器存在的情

【关键词】UDP协议;

网络聊天室;

.WindowsSocket网络编程

二、基础理论

1、UDP协议简介

WindowsSocket网络编程简介WindowsSockets规范本意在于提供给应用程序开发者一套简单的API,使应用程序开发者能够使用,并且网络软件供应商能够实现的一套库函数调用和相关语义。

现在的WindowsSockets已经基本上实现了与协议无关,你可以使用WindowsSockets来调用多种协议的功能,但较常使用的是TCP/IP协议。

Socket实际在计算机中提供了一个通信端口,可以通过这个端口与任何一个具有Socket接口的计算机通信。

应用程序在网络上传输,接收的信息都通过这个Socket接口来实现。

微软为VC定义了WindowsSockets类如CAsyncSocket类和派生于CAsyncSocket的CSocket类,它们简单易用。

根据传输数据类型的不同,Socket主要分为三类:

1)流式Socket(SOCK—STREAM),在这种方式下,两个通讯的应用程序之闻要先建立一种虚拟的连接,提供可靠的、面向连接的通信流,它使用”TCP”协议。

从而保证了数据传输的正确性和顺序的。

2)数据报Socket(SOCK—DGRAM),它使用数据报协议UDP,定义了一种无连接的服务,数据通过相互独立的报文进行传输,是无序的,并且不保证可靠、无差错。

3)原始Socket,原始套接字允许对底层协议如IP或ICMP直接访问,它功能强大但使用较为不便,主要用于一些协议的开发。

UDP协议简介UDP协议是一个面向无连接的协议。

其连接的建立不必像TCP那样需要服务器端侦听,也不需要有客户机请求连接,属于一种“强制”性的网络连接。

提供一对一或一对多的、UDP无连接的数据报服务。

该服务对消息中传输的数据提供不可靠的、最大努力的传送,这意味着它不保证数据的到达,也不保证所传送的数据报的顺序是否正确,UDP不重新传输丢失的数据。

其主要工作是:

将应用程序传输过来的数据分块交给网络层,确认接受到分组信息。

尽管UDP无法像TCP一样提供可靠的数据传输,但UDP并不比TCP缺乏优越性。

UDP在传输效率方面比TCP要高一些,而且许多应用程序并不需要保证严格的传输可靠性,比如视频会议系统等,需要实时的交互,但并不要求音频视频的绝对正确。

●UDP优缺点:

1.UDP不要求保持一个连接;

2.UDP没有因接收方认可收到数据包(或者当数据包没有正确抵达而自动重传)而带来的开销;

3.设计UDP的目的是用于短应用和控制消息;

4.在一个数据包连接一个数据包的基础上,UDP要求的网络带宽比TCP更小。

2、系统需求分析

(一)客户需求分析分析客户的需求,这里只列出比较核心的部分。

(1)只限于局域网内聊天。

(2)简易的操作界面。

(3)可以同时与多个人聊天。

(4)可以保存聊天记录。

(二)性能需求分析

(1)可靠性高,能在由于系统问题或其它原因产生错误后,作出相对应处理,比如网络初始化失败、服务器不在线等,可以提示用户安全退出本程序,在出现不可知的错误以后,可以尽量安全的退出程序。

在程序的设计过程中,要求能尽可能多的设想到用户使用过程中可能发生的事件,并能在判断事件后做出相应的处理,使程序具有较高的容错性能。

(2)宜操作性,程序简单易懂,容易上手使用。

设计界面是,简化界面的复杂性,模拟QQ等现有即时通讯工具的界面,使用户能很容易看懂并使用。

(3)开发文档易理解,保证以后自己开发时,能够清晰的理解整个系统的设计思路和实现细节。

(4)模块化设计此软件的功能,不同的模块实现不同的功能,使得软件易于维护与扩展。

(三)运行需求分析

(1)用户界面程序较小,启动速度快,无启动界面。

在本地局域网中使用,所以无需进行用户登录,无需认证界面,启动后的应用界面要清爽,设计要简单明了,要具有较高的易用性。

(2)故障处理在遇到可预知的故障与情况时,能提示用户并自动退出;

在遇到不可预知的故障时能安全退出。

三、功能设计

开发一个专用于实现两台计算机之间即时通讯的软件,以方便两台计算机之间信息的交流。

,在连接并通信时,尤其是近程的即时通讯,彻底的脱离了远程的服务器,避免了和远程服务器连接时过多的浪费网络资源。

并且避免了服务器忙或与服务器无法连接时,浪费过多时间用于和服务器建立连接!

因此,这个软件是极具适应性和实用性的即时通讯软件!

本次课程设计的目的是学习基于UDP协议实现网络聊天程序,已达到学会面向无连接方式的程序设计方法,并理解网络编程中面向无连接的概念。

1、课程设计的内容

用户数据报(UDP)是一个无连接协议,使用这种协议时,需要在两台计算机之间建立固定的连接,也就是说,通信双方没有服务器和客户机之分,它们之间进行的是对等通信,所以它的优势很明显,是现代通信不可或缺的一部分。

所以,利用它的优势设计一个可以实现私聊和群聊的软件,实现两台计算机间的即时通讯。

2、课程设计要求

基于UDP协议实现一对一的聊天的聊天,提供友好的用户界面,便于用户进行操作。

根据目前使用聊天程序的用户需求显示,用户对于聊天程序主要有以下几点要求:

(1)聊天功能:

可以实现实时接收和发送文字信息,并能支持公聊和私聊的方式。

(2)用户功能:

可以查看对方的开放信息,以及发送方的IP

四、系统实现

1、原理概述

采用UDP协议,通过服务器中转方式。

因此,现在的IP侦探在你仅仅跟对方发送聊天消息的时候是无法获取到IP的。

UDP协议是不可靠协议,它只管发送,不管对方是否收到。

但它的传输很高效,因为UDP协议排除了信息可靠传递机制,将安全和排序等功能移交给上层应用来完成,极大降低了执行时间,使速度得到了保证。

例如,腾讯采用了上层协议来保证可靠传输:

如果客户端使用UDP协议发出消息后,服务器收到该包,需要使用UDP协议发回一个应答包。

如此来保证消息可以无遗漏传输。

2、程序的开发步骤如下:

1、创建UDPmessage类,继承JFrame成为框体类,并实现ActionListener接口。

该类中包括多个成员变量,它们分别是信息接收文本域,信息发送文本框,IP文本框、“发送”按钮和数据包套接字。

2、在构造方法中初始化窗体组间,并将组间布局到窗体中,然后调用Server()方法创建数据包套接字,并添加“发送”按钮的事件监听器。

3、编写Server()方法,该方法负责创建DatagramSocket数据包套接字和接收信息的DatagramPacket数据包,最重要的是,该方法在线程中使用无限循环实现数据包的接收,这是网络程序设计必须掌握的接收数据的方法,这样才能保证数据的持续接收。

然后获取数据包中的IP信息,也就是数据包发送者的IP地址,这个IP地址将随数据包中的信息一起添加到信息接收文本域中,以区分信息的发布者。

4、实现ActionListener借口中的actionPerformed()方法,该方法用于处理“发送”按钮的单击事件,它需要获取ip文本框中的IP信息,这个IP地址将绑定到准备发送的数据包中。

5、编写本类的main()主方法,只需简单地创建主窗体对象就可以了。

6.在两台计算机上分别运行,修改IP文本框中的IP地址为接收一方的IP,输入内容点击放松就可以接收了。

五、设计过程

实现代码如下:

主机A的代码:

packageqq;

importjava.awt.*;

importjava.awt.event.*;

importjava.io.IOException;

import.*;

importjavax.swing.*;

publicclassUDPmessageextendsJFrameimplementsActionListener{

/**

*

*/

privatestaticfinallongserialVersionUID=1L;

privateJTextAreatext;

//信息接收文本域

privateJTextFieldipText;

//IP文本框

privateJTextFieldsendText;

//信息发送文本框

privateJButtonbutton;

//发送按钮

privateDatagramSocketsocket;

//数据报套接字

privateJScrollBarvsBar;

//滚动条

publicUDPmessage(){

setTitle("

UDP聊天程序"

);

//设置窗体标题

setBounds(100,100,400,300);

//窗体定位与大小

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//默认关闭操作为退出程序

setLayout(newBorderLayout());

//窗体使用边界布局管理器

text=newJTextArea();

//实例化信息接收文本域

text.setEditable(false);

//信息接收文本域不可编辑

JScrollPanetextPanel=newJScrollPane(text);

//信息接收文本域添加滚动面板

vsBar=textPanel.getVerticalScrollBar();

//获取

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 简洁抽象

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1