- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
宣淦皓网络编
《网络编程》大作业
实验报告
题目: 基于Java的网络聊天室系统
姓名: 宣淦皓
班级: 计科1204
学号: 201216010425
指导教师: 魏蔚
完成时间: 2015-7-3
实验题目
基于Java的网络聊天室系统
实验目的
基于Java语言设计网络聊天室系统。通过使用Socket编程、多线程、非阻塞通信、序列化、远程方法调用(RMI)、安全通信、MVC设计模式等多种方法和理论,构建满足海量用户的网络聊天室系统,并了解和掌握上述知识点。
实验要求
经过对题目的分析,对系统做出了必要的需求分析。系统需要一个客户端、一个服务器端。在本程序中,程序既可以作为客户端也可以作为服务器。首先,登录系统,输入需要连接的IP和端口,这时如果只打开一个窗口,则会出现通讯错误的提示,因为没有服务器监听,供客户端连接。再打开一个程序窗口,此时进行连接的操作,提示连接成功。两个程序窗口之间建立连接。客户端通过下方的文本域输入消息,系统调用socket的相关函数,发送消息给另外一个客户端,然后另外一个客户端收到消息,完成一次通信。双方都具有收发消息的功能
1.基本功能 实现服务器监听,客户端连接,可进行多人会话的C/S聊天室。
2.服务器特点
(1).在特定端口上进行侦听,等待客户端连接。
(2).用户可以配置服务器端的侦听端口。
(3).向已经连接到服务器端的用户发送系统消息。
3. 客户端特点
(1).连接到已经开启聊天服务的服务器端。
(2).用户可以配置要连接的服务器端的IP地址和端口号。
(3).用户可以配置连接后显示的用户名。
(4).用户可以向所有人或某一个人发送消息。
1.4 功能实现
(1). 注册功能
(2). 登陆验证功能功能
(3). 客户通过服务器转发,实现聊天功能.
(4). 实现公聊功能。
(5). 易用,美观的图形界面,实现系统托盘
程序架构图
程序代码
客户端代码:
package Client;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.StringTokenizer;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
文档评论(0)