计算机网络聊天室教学规划.doc
《计算机网络聊天室教学规划.doc》由会员分享,可在线阅读,更多相关《计算机网络聊天室教学规划.doc(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、,计算机网络课程设计报告设计题目: 聊天室 同组人姓名: 王巍瑾 马志超 周 旭 同组人学号: 20151515105 20151515104 20151515138 专业班级: 计科153 指导教师: 金松林 日 期: 2017年6月12日16日 一、 题目意义和需求分析1. 题目意义即时通讯或在线聊天是目前Internet上最为流行的通讯方式,用户之间通过文字传输信息。这是一种可以让使用者在网络上建立私人聊天室的实时通讯服务。除了简单的文字信息,使用者之间还可以互相发送文件、文档、音乐、视频等文件。只要与服务器链接,无论对方在天涯海角,双方隔得多远都没有问题。消息的实时更新,拉近了我们相知
2、的桥梁,文件的相互传输,使同事之间办公更方便快捷。2. 需求分析a. 注册当选择注册时,创建一个File文件类,载入“user.txt”,判断用户名是否已经存在,用户名有效后写入“user.txt”。b. 登录去“user.txt”读取用户数据,验证用户名是否存在,验证用户密码是否正确,如果以上验证全部正确,返回客户端信息,提示登陆成功进入聊天界面。c. 聊天所有已登录的用户的名称都会在列表中显示,然后就可以选择其中一个或多个发起聊天。接收用户聊天信息,当用户发送聊天信息时,服务端将会收到客户端用Socket传输过来的聊天信息对象,然后将其转换为Message对象,返回聊天信息,然后系统从Me
3、ssage中提取消息类型,再根据类型将消息转化后通过Socket转发到相应的用户。d. 文件传输在聊天的基础上增加了一个文件传输功能。同事之间办公难免有一些资料的来往,在登录列表中选择一个用户或多个用户发送文件,等对方确认接收后即可建立连接进行文件传输。二、设计说明聊天室总体分为三个模块 ,主要包括注册登录,聊天模块,文件传输模块。系统运行在java环境中,要求java环境为JDK 1.8+;设计中的重点是通过Java中的ServerSocket搭建TCP服务器,通过在客户端创建Socket套接字连接服务器,然后通过ObjectOutputStream来发送Message(数据消息的封装类)对
4、象让服务器接受。通过线程来存储来存储用户的Socket连接状态,接受并处理用户发过来的信息,返回处理信息。客户机也通过线程来接受服务器的处理数据做出响应。设计的难点是文件的传输,首先通过原有的服务器获得目标客户机的IP地址和端口,然后在客户机上建立服务器,通过要发送的文件的客户机连接接受文件的客户机用DataInputStream 和DataOutputStream 来推送到输入、输出流。然后客户机接受并保存。三、系统详细设计1. 功能模块2. 流程图注册向好友发送文件跟好友聊天登录聊天账户四、程序源代码及注释public ChatRoom(String u_name, Socket clie
5、nt) / 赋值name = u_name;clientSocket = client;onlines = new Vector();setTitle(name);setResizable(false);setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);setBounds(200, 100, 688, 510);contentPane = new JPanel();setContentPane(contentPane);contentPane.setLayout(null);/ 聊天信息显示区域JScrollPane scrollPane
6、 = new JScrollPane();scrollPane.setBounds(10, 10, 410, 300);getContentPane().add(scrollPane);textArea = new JTextArea();textArea.setEditable(false);textArea.setLineWrap(true);/激活自动换行功能 textArea.setWrapStyleWord(true);/激活断行不断字功能 textArea.setFont(new Font(sdf, Font.BOLD, 13);scrollPane.setViewportView
7、(textArea);/ 打字区域JScrollPane scrollPane_1 = new JScrollPane();scrollPane_1.setBounds(10, 347, 411, 97);getContentPane().add(scrollPane_1);final JTextArea textArea_1 = new JTextArea();textArea_1.setLineWrap(true);/激活自动换行功能 textArea_1.setWrapStyleWord(true);/激活断行不断字功能 scrollPane_1.setViewportView(text
8、Area_1);/ 关闭按钮final JButton btnNewButton = new JButton(关闭);btnNewButton.setBounds(214, 448, 60, 30);getContentPane().add(btnNewButton);/ 发送按钮JButton btnNewButton_1 = new JButton(发送);btnNewButton_1.setBounds(313, 448, 60, 30);getRootPane().setDefaultButton(btnNewButton_1);getContentPane().add(btnNewB
9、utton_1);/ 在线客户列表listmodel = new UUListModel(onlines) ;list = new JList(listmodel);list.setCellRenderer(new CellRenderer();list.setOpaque(false);Border etch = BorderFactory.createEtchedBorder();list.setBorder(BorderFactory.createTitledBorder(etch, +在线用户:, TitledBorder.LEADING, TitledBorder.TOP, new
10、Font(sdf, Font.ITALIC, 20), Color.black);JScrollPane scrollPane_2 = new JScrollPane(list);scrollPane_2.setBounds(430, 10, 245, 375);scrollPane_2.setOpaque(false);scrollPane_2.getViewport().setOpaque(false);getContentPane().add(scrollPane_2);/ 文件传输栏progressBar = new JProgressBar();progressBar.setBoun
11、ds(430, 390, 245, 15);progressBar.setMinimum(1);progressBar.setMaximum(100);getContentPane().add(progressBar);/ 文件传输提示lblNewLabel = new JLabel(文件传输信息栏:);lblNewLabel.setFont(new Font(SimSun, Font.PLAIN, 12);lblNewLabel.setBackground(Color.WHITE);lblNewLabel.setBounds(430, 410, 245, 15);getContentPane
12、().add(lblNewLabel);try oos = new ObjectOutputStream(clientSocket.getOutputStream();/ 记录上线客户的信息,并发送给服务器Message toMsg = new Message();toMsg.setType(0);toMsg.setName(name);toMsg.setTimer(getTimer();oos.writeObject(toMsg);oos.flush();/ 启动客户接收线程CThread = new ClientInputThread();CThread.start(); catch (I
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机网络 聊天室 教学 规划
限制150内