




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上计算机网络课程设计报告学院:计算机科学学院专业:计算机科学与技术班级:08级01班姓名:学号: 小组成员: A B C D E F 2011-7-13项目内容:基于Socket的网络聊天系统的设计与实现实验目的:基于Socket套接口,实现网络聊天系统的设计与实现,让我们掌握Socket的编程技术及网络服务的技术,让同学们更加深刻的了解,并掌握这方面的知识。实验环境:操作系统:windows2000或windows2003; 内存:256M以上; 基于eclipse的JAVA运行环境。设计方案:首先,我们知道此应用软件需实现网络中多台主机的信息互通,实现语言文字得互聊
2、,因此涉及到主机网络互联的问题,所以必须会应用到网络协议,可以用UDP或TCP。 其次,既然要求设计基于Socket的网络聊天系统,那就必须对Socket有一个充分的了解。 最后,不管运用何种语言设计此程序,都要求对该语言有一个透彻的了解,并能运用自如。实现流程: 启动电脑,打开能运行该程序的环境,必须保证代码的正确性; 进行窗体框架的设计,实现网络连接,并达到网络聊天的功能;在以上步骤的成功进行下达到设计要求的基于Sockets的局域网内聊天系统的函数实现的目的。结果及分析:程序运行以后,经过局域网内测试,实现了在局域网内的好友添加,聊天等功能,基本上完成了本实验的全部要求。但由于时间仓促,
3、再加上本人水平有限,对这方面的知识还有所欠缺,经过这次课程设计,对此有了一个很大的提高。源程序;一 Client端程序代码package wangluo;import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.DataInputStream;import java.io.DataOutputStream;import javax.swing.JFrame;import javax.swing.JTextField;publ
4、ic class Client implements ActionListener private JTextField jtf = new JTextField("", 20);JFrame jf = new JFrame("不用注册直接登陆");public Client() jf.setLayout(new BorderLayout();jf.add(jtf, BorderLayout.NORTH);jtf.addActionListener(this);jf.pack();jf.setLocation(500, 300);jf.setResiza
5、ble(false);jf.setVisible(true);jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Overridepublic void actionPerformed(ActionEvent e) jf.dispose();new ThreadClient(jtf.getText();public static void main(String args) new Client();二 ThreadClient端程序代码:package wangluo;import java.awt.BorderLayout;import ja
6、va.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.DataInputStream;import java.io.DataOutputStream;import .Socket;import javax.swing.JButton;import javax.swing.JFrame;import jav
7、ax.swing.JPanel;import javax.swing.JTextArea;import javax.swing.JTextField;public class ThreadClient extends Thread implements ActionListener private String name = ""private int a;private JTextField jtf = new JTextField("", 25);private JTextArea jta = new JTextArea(30, 40);privat
8、e DataOutputStream dos;private DataInputStream dis;private Socket s;public ThreadClient(String temp) =temp;JFrame jf = new JFrame("聊天界面");jf.setLayout(new BorderLayout();JButton jb = new JButton("发送");JPanel jp = new JPanel();jta.setLayout(new GridLayout(1, 2);jp.add(jtf
9、);jp.add(jb);jf.add(jp, BorderLayout.NORTH);jf.add(jta);jb.addActionListener(this);jtf.addActionListener(this);jf.pack();jf.setLocation(450, 200);jf.setVisible(true);jf.setSize(400, 350);try s = new Socket("", 1024);dos = new DataOutputStream(s.getOutputStream();dis=new DataInputS
10、tream(s.getInputStream();dos.writeUTF("<1.1>");dos.writeUTF(name);System.out.println("heh"); catch (Exception e) e.printStackTrace();jf.addWindowListener(new WindowAdapter() Overridepublic void windowClosing(WindowEvent e) try dos.writeUTF("<1.4>");Thread.sl
11、eep(2000);dis.close();dos.close();s.close(); catch (Exception e1) e1.printStackTrace();System.exit(1);); this.start();Overridepublic void run() while(true)try Thread.sleep(3000);dos.writeUTF("<1.3>");jta.setText(dis.readUTF(); catch (Exception e) break;Overridepublic void actionPerfo
12、rmed(ActionEvent ae) String comn=jtf.getText(); if(!"".equals(comn) try dos.writeUTF("<1.2>");dos.writeUTF(comn);jtf.setText("");jtf.requestFocus(); catch (Exception e) e.printStackTrace(); 三ThreadServer端程序代码:package wangluo;import java.io.DataInputStream;import j
13、ava.io.DataOutputStream;import java.io.IOException;import .ServerSocket;import .Socket;public class ThreadServer extends Thread /private StringBuffer message = new StringBuffer();private static String message=""private Socket s;private String name=""public ThreadServer(Socket s)
14、this.s = s;public void run() try DataOutputStreamdos=new DataOutputStream(s.getOutputStream();DataInputStream dis=new DataInputStream(s.getInputStream();while (true) String temp=dis.readUTF();if("<1.1>".equals(temp)name=dis.readUTF();message="欢迎"+name+"进入!"+"
15、n"+message;else if("<1.2>".equals(temp)message=name+"说:"+dis.readUTF()+"n"+message;else if("<1.3>".equals(temp)dos.writeUTF(message);else if("<1.4>".equals(temp)message=name+"离开"+"n"+message; break;dos.close();dis.close(); catch (Exception e) e.printStackTrace();public static void main(String args) throws Exception ServerSocket ss = new ServerSocket(1024);while (true) Socket s = ss.accept();new ThreadServer(s).start(); 安装演示说明详细步骤:首先将自己所在电脑作为服务器端,在JAVA环境下运行该程序,出现以下页面:再在光标所示位置输入用户名称,或直接按回车键进入
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 计算机输入输出2025年考试试题及答案
- 2025年软考备考的高效秘笈试题及答案
- 生活习惯养成小班教育计划要点
- 现代化开发流程的优化策略试题及答案
- 2025年软考服务导向架构试题及答案
- 仓库应对市场变化的灵活策略计划
- 云计算平台的服务模型解析试题及答案
- 河北省石家庄市八校联考2025年七下数学期末经典模拟试题含解析
- 保密资质认定管理办法
- 2025届合肥蜀山区五校联考八年级数学第二学期期末考试模拟试题含解析
- 2025-2030中国无人驾驶清扫车行业市场发展现状及发展趋势与投资前景研究报告
- 飞机重心位置的表示方法RepresentationofTH
- 风湿免疫病患者结核病诊治及预防实践指南(2025版)解读课件
- 湖南省雅礼中学2025届高三高考考前热身考数学试题试卷
- 急危重症患者鼻空肠营养管管理专家共识(2024版)解读
- 电梯日管控、周排查、月调度制度及管控清单(附记录表格)1
- 与基层建立卒中中心联盟协议
- T-HNCAA 061-2024 分布式光伏电站定期检查与性能评估技术标准
- 2025年综合医院笔试试题及答案
- 2025年苏州市中考语文模拟试卷(三)(含答案)
- 100以内加法减法口算1000题知识测试打印
评论
0/150
提交评论