计算机网络课程设计实验报告

上传人:cl****1 文档编号:508351083 上传时间:2023-11-12 格式:DOCX 页数:10 大小:299.70KB
返回 下载 相关 举报
计算机网络课程设计实验报告_第1页
第1页 / 共10页
计算机网络课程设计实验报告_第2页
第2页 / 共10页
计算机网络课程设计实验报告_第3页
第3页 / 共10页
计算机网络课程设计实验报告_第4页
第4页 / 共10页
计算机网络课程设计实验报告_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《计算机网络课程设计实验报告》由会员分享,可在线阅读,更多相关《计算机网络课程设计实验报告(10页珍藏版)》请在金锄头文库上搜索。

1、计算机网络课程设计实验报告一、实验项目:网络聊天程序二、实验要求:利用Winsock控件,采用TCP或UDP方式实现一个网络聊天程序。具体要求如下:(1)能够实现一个聊天服务器(采用TCP方式时可同时允许15个用户连接),并在 用户之间相互进行信息发送。(2)具有聊天记录功能。(3)制作一个客户端程序。在课程设计报告中要求给出程序设计的思想、关键程序说明以及服务器和客户程序运行 界面的屏幕截图。三、实验程序功能:采用TCP方式实现的网络聊天程序:(1)以某一用户名注册进入聊天室,自动判断是否与现有聊天室人员重名,给出相 关信息。进入后启动线程,获得现有聊天室人员的列表信息;(2)点击送出按钮,

2、向所有人发送信息。双击列表中某人的名字,在弹出的窗口 中可以写悄悄话,悄悄话内容只显示在这个人的屏幕上;(3)点击刷新谈话区,可以清空聊天信息屏幕。点击刷新聊天者列表可以重新从 服务器读取聊天室人员列表信息;(4) 点击退出聊天室,向所有人发送离开信息,同时刷新聊天室人员列表;(5)服务器端程序先行运行,服务器读取来自客户端的信息流请求,并把相应处理 结果返回客户端,完成与客户端的通信。(6)点击聊天记录,可以查看聊天室的聊天记录。四、设计与分析:客户端聊天室客户/服务器通信图(表示信息流方向):五、设计思想:传输层协议有两种:TCP和UDP,TCP是可靠传输,它把信息包捆绑,在 必要的时候,

3、排序和重传这些信息包以获得可靠的数据传输UDP支持快 速的、无连接的、不可靠的信息包传输。在JAVA中,使用TCP传输,其套接字的封装函数分TCP/IP客户 套接字和TCP/IP服务器套接字。本程序使用TCP做,采用了 JAVA中的流式 Socket的通信机制,流式Socket通信过程如下图:客户套接字函数:Socket(String hostname,itn port)或Socket(InetAddress ipAddress,int port)服务端套接字函数:ServerSocket(int port)ServerSocket(int port,int maxQueue)ServerSo

4、cket(int port,int maxQueue,InetAddress localAddress)六、文件说明:文件清单:(1)客户端线程主类:chatappletthreepublic class chatserverthree implements Runnable/*聊天室服务器端处理主类*/服务器构造初始化线程public chatserverthree()/服务器main()初始化public static void main(String args)/服务器线程connect操作run方法public void run()向聊天室所有人员发送普通话语信息public void

5、 broadcast(String msg)处理悄悄话,向特定人员发送悄悄话public void broadcast1(String msg)客户端线程类firstthreadclass firstthread extends Thread/firstthread初始化线程public firstthread(chatserverthree server,Socket client)监听运行线程public void run()while(true)line=in.readUTF();/line读取来自客户端线路的信息线路信息前端为PEOPLE表明有新人进入了聊天室if(line.start

6、sWith(PEOPLE)线路信息前端为QUIT表明有人离开了聊天室else if(line.startsWith(QUIT)线路前端为MSG表明接收到的是普通聊天话语信息e lse if(line.startsWith(MSG) 线路前端为“悄悄的对”表明接收到的是悄悄话else if(line.startsWith(悄悄地对)线路前端为newlist表明得到客户端刷新列表的请求else if(line.startsWith(newlist)(2)聊天室界面AWT面板类:Apanel:/*聊天室界面北部面板Apanel类*/class Apanel extends Panel/用于构造面板B

7、panel:/*聊天室界面中部面板Bpanel类*/class Bpanel extends PanelCpanel:/*聊天室界面南部面板Cpanel类*/class Cpanel extends Panel发送悄悄话弹出式窗口类:Mywindow:class Mywindow extends Frame implements ActionListener构造方法初始化画出弹出式窗口界面Mywindow()处理按钮事件的方法public void actionPerformed(ActionEvent e)(4)服务器端线程类:Chatserverthree:/* 聊天室主类 chatapp

8、letthree 类*/public class chatappletthree extends Applet implements Runnable,ActionListener,ItemListener /Applet启动初始化画出聊天室界面,建立与服务器连接public void init() /启动线程public void start()终止线程public void stop() /关闭监听端口,断开连接public void destroy() /客户端启动线程public void run() (4) 服务器为每一个客户端启动的线程类Firstthread/客户端线程类firs

9、tthreadclass firstthread extends Threadprotected Socket client;/listen读取来自客户端的消息:name格式为:PEOPLE+名字+性别String line,name;protected DataOutputStream firstout,out; /定义网络数据输出流protected chatserverthree server;protected DataInputStream in; 定义网络数据输入流/firstthread初始化线程public firstthread(chatserverthree server,

10、Socket client) this.server=server;this.client=client;七、界面截图:小程序: cka-tappletiliree clas 3这是开始界面-|g|x|Applet旦小袒序看卷 SB : ck a-I: applet three clas 3这是群聊,单击聊天记录可以获取聊天记录。单击刷新谈话区 可以刷新聊天区域,单击刷新聊天者列表可以刷新聊天者列表。双击聊天者列表中的昵称,可以弹出悄悄话窗口进行私聊。八、实验总结:做这个课程设计时,大部分人都是用VC做的,VC里面直接封装了一 些Socket函数,但是我觉得用java做更好,因为它的界面更友好,而且java 里面也封装了 Socket函数,且分为TCP和数据报的两种不同的Socket封装 函数,程序员可方便的选择所需的函数。通过这次的课程设计,更好的理解 了套接字的作用,它就相当于一个插口,理解标准协议的任何线路端都能插 入套接字并与之通信,它对应应用服务程序,相当于不同应用服务程序的地 址,通过它来分别同一 IP地址的不同应用服务程序。在做这个程序时,因为我是采用java做的,所以我是用多线程机制实现 的,这可以多个不同的线程同时运行。计算机网络课程设计网络聊天程序学院: 班级: 姓名: 学号:信息工程软件工程二班杨睿200505070210

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

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