java设计文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计说明书
课程设计名称: java程序设计语言课程作业
学院名称:信息工程学院
专业:计算机科学与技术班级: 110452 学号: 11045230 姓名:杨凯
评分:教师:
20 13 年 12 月 6 日
目录
第一节课题背景 (3)
第二节课题研究的目的和意义
2. 1研究目的 (4)
2. 2 研究意义 (4)
第三节设计方法、与代码.实现 (5)
3. 1 登录界面设计与实现 (5)
3. 2 聊天窗口设计与实现 (7)
3. 3 消息处理通信实现 (8)
3. 4 用户账号信息保护 (10)
3. 5 部分源代码 (11)
第四节实验总结 (24)
第一节课题背景
s o c k e t非常类似于电话插座。以一个国家级电话网为例。电话的通话双方相当于相互通信的2个进程,区号是它的网络地址;区内一个单位的交换机相当于一台主机,主机分配给每个用户的局内号码相当于s o c k e t号。任何用户在通话之前,首先要占有一部电话机,相当于申请一个s o c k e t;同时要知道对方的号码,相当于对方有一个固定的s o c k e t。然后向对方拨号呼叫,相当于发出连接请求(假如对方不在同一区内,还要拨对方区号,相当于给出网络地址)。对方假如在场并空闲(相当于通信的另一主机开机且可以接受连接请求),拿起电话话筒,双方就可以正式通话,相当于连接成功。双方通话的过程,是一方向电话机发出信号和对方从电话机接收信号的过程,相当于向s o c k e t发送数据和从s o c k e t接收数据。通话结束后,一方挂起电话机相当于关闭s o c k e t,撤消连接。
第二节课题研究的目的和意义
2.1本课题的研究目的
1、掌握Socket通信的基本原理和使用方法。
2、能熟练运用一种高级语言编写基于Socket的C/S端通信程序。
3、通过此次实验,了解TCP/UDP协议在Socket建立过程中的区别,加深对两个协议。
2.2本课题的研究意义
利用Java实现网络通信,迅速实现信息的传递,通过在TCP/IP协议保障的前提下建立客户机与服务器之间的连接,即而实现信息的传递。
这个需求是服务器端的需求。其次还应实现:用户登录,包括客户端请求登录以及服务器端响应登录两个过程。收发聊天信息,包括客户端发送聊天信息以及服务器端转发聊天信息两个过程。收发系统信息,由服务器端发送给客户端的信息。用户下线,包括客户端请求下线以及服务器响应请求两个过程,这个与用户登录类似,服务器关闭。
第三节设计方法、与代码实现
3. 1 登录界面设计与实现
public log()//注册界面显示,运用插件windowsbuilder弄的{
super("用户注册");
this.setBounds(320,240,463,298);
this.setResizable(false);
getContentPane().setLayout(null);
getContentPane().setLayout(null);
JLabel label_2 = new JLabel("密码:");
label_2.setBounds(273, 120, 61, 15);
this.getContentPane().add(label_2);
JLabel label_3 = new JLabel("再次输入:");
label_3.setBounds(273, 145, 70, 15);
this.getContentPane().add(label_3);
text_port = new JTextField("",9);
text_port.setBounds(347, 142, 84, 21);
this.getContentPane().add(text_port);
button_load = new JButton("退出");
button_load.setBounds(273, 225, 158, 23);
this.getContentPane().add(button_load);
button_load.addActionListener(this);
imagePanel = (JPanel)this.getContentPane();
imagePanel.setOpaque(false);
JLabel label_1 = new JLabel("账号:");
label_1.setBounds(273, 82, 61, 15);
this.getContentPane().add(label_1);
text_account = new JTextField("",13);
text_account.setBounds(347, 79, 84, 21);
this.getContentPane().add(text_account);
button_zc = new JButton("注册");
button_zc.setBounds(273, 192, 158, 23);
getContentPane().add(button_zc);
button_zc.addActionListener(this);
JLabel lblYy = new JLabel("YY");
lblYy.setFont(new Font("Tunga", Font.PLAIN, 52));