版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课题内容和要求.课题内容基于Socket和多线程编程的聊天程序实现.课题要求网络聊天程序设计非常复杂,允许多个人同时聊天更加需要多线程技术的支持,请实现一个简单的多线程网络聊天程序模拟。设计思路分析在网络越来越发达的今天,人们对网络的依赖越来越强,网络聊天已经成了许多人生活中必不可少的一部分,基于这样的需求,出现了许多网络聊天通信工具,像QQ,MSN等等,但是人们已经不再满足于单一的两个人之间的聊天,而是对多人同时聊天产生了兴趣,于是出现了网络聊天室,不同地方的人可以在那个虚拟的聊天室里面热烈聊天。基于这样的想法,我们用JAVA设计一个多人同时聊天的小程序,用Socket编程实现网络通讯,面向连接的,采用多线程的实现技术。在程序中,可以设置加入连接的最大数目,通过更改IP地址和端口号,成为不同的客户端,与服务器端连接,进行多用户聊天。%为方便用户交互,我们采用图形化的用户界面。实现了好友添加,消息收发、显示等基本功能。概要设计该网络聊天程序大致分为三个主要部分:客户端、服务器端和用户图形界面。各个部分的初步设计思想、流程及存储结构如下:程序整体框架:主程序监听一端口,等待客户接入;同时构造一个线程类,准备接管会话。当一个Socket会话产生后,将这个会话交给线程处理,然后主程序继续监听。打开Socket命名监听端口建立连接收发消息关闭连接¥打开Socket连接服务器收发消息关闭连接服务器端程序客户端程序客户端(Client)客户端,使用SOcket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭SOcket。客户端不需要指定打开的端口,通常临时的、动态的分配一个端口。?服务器端(SerVer)服务器端,使用SerVerSOcket监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。用户图形界面用户图形界面方便程序与用户的交互,多个用户参加,完成会话功能,具体的设计要方便用户的使用,直观清晰,简洁明了,友好美观。存储结构下面列出主要存储结构或变量:存储结构、变量、对象类型*说明postInetAddress标识IP地址Portint标识端口Server[]>ServerThread服务器端连接数Client[]Socket客户端连接数Client(String ip,intp,Facechat)publicClient类成员函数!Publicvoidrun()VoidClient、Server类成员函数Server(intport,Facechat)publicServer类成员函数Face()Public,Face类成员函数详细设计代码分服务器端、客户端、和用户图形界面三部分,分别如下:1.服务器端服务器端主要是使用SerVerSOcket类,相当于服务器SOcket,用来监听试图进入的连接,当新的连接建立后,该类为他们实例化一个SOcket对象,同时得到输入输出流,调用相应方法完成会话。具体代码如下:package.*;!import.*;import.*;publicclassServerextendsThread{ServerSocketskt; ");while(true){try{Client[k]=();tart();客户端“+Client[k].getInetAddress()+"已连线\n");etClient().getOutputStream());i=server[k].getI();k++;}else{etInputStream()));theOutputStream=newPrintStream());•while(true){readin=();+"\n");}}catch(SocketExceptione){"连线中断!∖n");户端客户端主要是使用SOcket类,该类是JAVA实现网络编程重要的基础类,实现程序间双向的面向连接的通信。调用publicSOcket(Stringhost,int「。^)方法设定IP和端口。建好连接后,用户通过得到SOcket的输入输出流对象后,利用流的方法实现数据的传输。调用publicInputStreamgetInputStream()和PublicOutputStreamgetOutputStream()方法,分别得到Socket对象的输入输出流;。具体实现代码如下:package.*;impOrt.*;impOrtclassClientextendsThread{SOcketskt; 户图形界面该部分主要是完成界面的初始化,合理布局组件,方便用户交互。主要是JAVA按钮,文本域,标签,布局管理器的使用。主要处理了键盘Enter消息接受,下面是实现代码:package.*;importclassFaceextendsFrame{)privatestaticfinallongserialVersionUID=1L;ButtonclientBtn,serverBtn;TextAreata;TextFieldtfaddress,tfport,tftype;Labellbl1,lbl2,lbl3;intport;Clientclient;(Serverserver;booleaniamserver;staticFacefrm;publicFace(){-L-'I土JJmlJIWJ芦HIL与LLtLlXUI=始化界面如下:序运行初2.输入发送的聊天内容后的测试效果:通过以上测试分析可知,程序很好地完成了课题的要求,运行结果正确,利用JAVA语言的异常处理机制很好地处理了各种异常,使得程序的性能变得相对稳定,界面舒适易用,可以满足基本聊天需要!调试过程中的问题程序的调试相对程序的编码复杂多了,需要很大的精力才能做好。.问题的描述JAVA语言的基本知识已具备,但是SOCket网络方面还不是很了解,花了不少工夫。SOCket(套接字),用于描述IP地址和端口,通信链的句柄。应用程序通常通过它向网络发出或应答请求。有SoCket和SerVerSoCket两个类,SerVerSOCket用于服务器端,SOCket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个SOCket实例,操作这个实例,完成会话。(2)关于IP地址的获取,刚开始不知道通过什么方法解决,后来查书知道JAVA的InetAddress类,可以得到主机地址。但是我想通过程序自动获取加进来的IP地址,可以调用PUbliCbyte[]getAddress()方法,但是没能成功,相互的连接也不是很顺畅,留待下次解决。.程序改进的思考程序只是实现了简单的收发消息功能,功能比较单一,还有许多改进提升的地方。(1)增加登录界面,用户通过号码和口令进入系统,对用户身份进行验证增加系统的安全性。(2)可以考虑保存聊天记录功能,方便用户查看。(3)界面美化方面比较欠缺,可以更加友好和美观。专业课程设计总结第一周的专业课程设计结束了,这是一个不断学习的过程,给我留下了太多的东西。课题是基于SOCket和多线程的聊天程序,我的第一选择就是JAVA语言,因为不管是在网络应用方面还是在多线程支持方面,JAVA都有很大的便利和优势。同时,我也体会到了开发工具的强大功能。进一步理解了面向对象的思想。由于JAVA是面向对象的语言,主要的特征就是封装,写类。在该课题中,很容易就分成三个类,SerVer类、Client类和FaCe类,这样分工明确,几个类可以单独写。再实例化类对象,完成必要的操作。其中SerVer类和Client类都是继承Thread类,FaCe类继承Frame类,实现代码复用。每次都会谈到程序调试问题,这是个比较重要的问题,我觉得起初就要用工程的思想,从整体上考虑问题,这样调试起来相对简单。总之,这要靠不断实践来提高。类似这样的实践都是不断学习的过程,其中肯定会碰到问题,比如这次的JAVA输入输出流问题,不是容易
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CI 1433-2026企业数据资产入表的会计分类及确认要求
- FDA肿瘤新药上市情况介绍
- 《培训培训者》课件
- 新形势下高职院校教学管理创新实践
- 人教版小学三年级语文上册《美丽的小兴安岭》
- 凡客诚品网络营销案例课件
- 2027届云南省昭通市巧家县七上数学期末教学质量检测试题含解析
- 2027届山东省德州市六校数学九上期末质量检测试题含解析
- 2027届湖北省武汉市武昌区武汉市古田路中学七上数学期末学业水平测试试题含解析
- 学校行政值周工作制度
- 2026年烟花爆竹经营从业人员考核试题库(附答案)
- 2026秋新教材人教PEP版五年级上册英语Unit 1Different friends单元整体教学设计
- 六年级上册语文1-8单元基础默写通关练习卷
- 2.3 探索内角和的奥秘 课件(共23张) 北师大版数学五年级上册
- 悬挑式脚手架专项拆除施工方案
- 2026CAPA纠正预防措施管理台账台账
- 2026年危险化学品重大危险源企业安全隐患排查重点内容
- 医保结算清单质控管理制度及流程
- 2026年甘肃省公开遴选和公开选调公务员考试(综合素质测试)综合试题及答案
- 乐观积极 培养阳光心态 主题班会课件
- 神经网络与深度学习 课件全套 张杲峰 第1-9章-绪论 -注意力机制与Transformer
评论
0/150
提交评论