网络程序的设计考试大作业

上传人:l**** 文档编号:145625703 上传时间:2020-09-22 格式:DOC 页数:19 大小:378KB
返回 下载 相关 举报
网络程序的设计考试大作业_第1页
第1页 / 共19页
网络程序的设计考试大作业_第2页
第2页 / 共19页
网络程序的设计考试大作业_第3页
第3页 / 共19页
网络程序的设计考试大作业_第4页
第4页 / 共19页
网络程序的设计考试大作业_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《网络程序的设计考试大作业》由会员分享,可在线阅读,更多相关《网络程序的设计考试大作业(19页珍藏版)》请在金锄头文库上搜索。

1、. . . 网络程序设计考试大作业 题目:聊天室程序 班级: 学号: : 成绩:网络程序设计考试大作业1一所使用的背景知识、主要函数的描述3二 程序设计思想及程序设计流程框图3三主要代码及代码运行结果41.启动服务器42. 登录63. 注册104. 登录和注册判定125. 进入聊天界面136. 私聊页面17一所使用的背景知识、主要函数的描述背景:根据现在最流行的聊天工具QQ,模仿一部分主要功能来完成。主要函数:public class Server;服务器的创建。public class Client;客户端的创建。public class Main extends JFrame;登录界面的显

2、示。public class Regist extends JDialog;注册界面的显示。public class UserInformation;用户信息的保存和验证。public class AllTalkFrame extends JFrame;登录后进入群聊界面。public class PointToPointTalkFrame extends JFrame;私聊界面。二程序设计思想及程序设计流程框图设计思想:利用socket与server socket在客户端与客户端之间的通信,InputStream InputStreamReader输入输出流进行信息的发送与接收。程序设计流程

3、:主页面:输入账号与密码,点击登录或者注册进入下一页面。登录:判定是否正确,正确则进去聊天界面。注册:进去注册界面,成功则返回主页面。进入聊天室:能发送信息让在线的所有人看到。私聊界面:能与一个人单独聊天,信息只能被双方看到。主页面注册登录进入聊天室点击名字进入私聊三主要代码及代码运行结果1.启动服务器代码:public class Server ServerSocket server;static int clientNum = 0;/ 存放与服务器连接上的对应的Socket,作用是保存服务器与客户端之间的流,便于服务器给每个客户端进行回发消息List clientConnection =

4、new ArrayList();public Server() try server = new ServerSocket(9999);System.out.println(服务器已经启动); catch (IOException e) e.printStackTrace();System.out.println(服务器启动失败);/ 部类,监听客户端是否有连接到服务器,并将此客户端的Socket传递给HandleSocket进行处理,同时将client存放到List中,即clientConnection中class SocketListener implements Runnable pub

5、lic void run() Socket client;try while (true) client = server.accept();/ 连接上一个就压入List中,即clientConnection中clientConnection.add(client);HandleSocket hs = new HandleSocket(client);/ 连接上就让HandleSocket去处理new Thread(hs).start(); catch (IOException e) System.out.println(客户连接服务器失败);/ 部类 处理一个Socket,接收一个Clien

6、t发送过来的消息,并且服务器原封不动的返回给所有客户端,客户端对消息进行过滤class HandleSocket implements Runnable Socket client;HandleSocket(Socket client) this.client = client;public void run() try clientNum+;/ 启用输入流InputStream is = client.getInputStream();InputStreamReader isr = new InputStreamReader(is);BufferedReader br = new Buffe

7、redReader(isr);System.out.println(第 + clientNum + 个客户端连接进入服务器);boolean flag = true;String s;do / 对用户发来的消息进行群发给客户端s = br.readLine();System.out.println(接受到一个客户端消息: + s);for (int i = 0; i clientConnection.size(); i+) Socket client = clientConnection.get(i);OutputStream os = client.getOutputStream();Pri

8、ntStream ps = new PrintStream(os);ps.println(s); while (flag);client.close(); catch (IOException e) System.out.println(有一个客户断开与服务器的连接);界面:2. 登录代码:package .qq.main;import java.awt.Color;import java.awt.Dimension;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionLis

9、tener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPasswordField;import javax.swing.JTextField;import .qq.regist.Regist;import .qq.regist.UserInformation;/* * 主界面 */public class Main extends JFrame /组件的容private JLab

10、el userId;private JLabel userPassword;private JTextField inputId;private JPasswordField inputPassword;private JButton btLogin;private JButton btRegist;Main() userId = new JLabel();userPassword = new JLabel(密码);inputId = new JTextField(6);inputPassword = new JPasswordField();btLogin = new JButton(登陆)

11、;btRegist = new JButton(注册);/ 设置窗体属性Toolkit tk = Toolkit.getDefaultToolkit();Dimension screenSize = tk.getScreenSize();/得到当前屏幕的长和宽int x = (int) screenSize.getWidth();int y = (int) screenSize.getHeight();this.setBounds(x - 240) / 2, (y - 600) / 2, 240, 600);/窗口显示的大小 ,位置this.setResizable(false);/窗口大小不

12、能改变this.setLayout(null);/默认的格式this.setBackground(Color.BLACK);/ 窗口的颜色this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/退出程序/ 设置JLabel属性userId.setBounds(30, 160, 40, 20);userPassword.setBounds(30, 200, 40, 20);/ 设置文本域属性inputId.setBounds(90, 160, 100, 20);inputPassword.setBounds(90, 200, 100, 20);i

13、nputPassword.setEchoChar(*);/用*显示代替你输入的密码/ 设置JButton属性btLogin.setBounds(50, 240, 60, 20);btRegist.setBounds(120, 240, 60, 20);/ 注册“登陆”按钮监听器btLogin.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) UserInformation user = new UserInformation();String userName = inputId.getText();String userPassword = new String(inputPassword.getPassword();if (userName.eq

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作范文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号