欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    java课程设计聊天小程序解析.docx

    • 资源ID:6085607       资源大小:32.60KB        全文页数:18页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    java课程设计聊天小程序解析.docx

    1、java课程设计聊天小程序解析课程设计指导书姓 名宣红东宛立生学 号0983802409838027班 级一班课程名称Java课程设计课程性质设计时间 2010年 11月4日 2010年12月31日设计名称聊天小程序设计目的本次课程设计是对前面学过的面向对象的编程思想以及编程方法的一个总结、回顾和实践。开始设计前学生一定要先回顾以前所学的内容,明确本次设计所要用到的技术点并到网上搜索以及查阅相关的书籍来搜集资料。通过编写一个基于JAVA的应用系统综合实例,来掌握Java语言编程技巧。设计要求1、使用图形用户界面。2、能实现一个聊天室中多人聊天。3、可以两人私聊。设计思路与设计过程思路与原理:服

    2、务器端接受客户端的连接请求,同时启动一个线程处理这个连接,线程不停的读取客户端输入,然后把输入加入队列中,等候处理。在线程启动的同时将线程加入队列中,以便在需要的时候定位和取出。过程:首先设计ChatServer服务端与ChatClinet客户端 1、 服务器(ChatServer),使用ServerSocket监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。2、 客户端(ChatClinet),使用Socket对网络上某一个服务器的 某一

    3、个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。客户端不需要指定打开的端口,通常临时的、动态的分配一个1024以上的端口。(具体详细的过程步骤及代码见下面) 3、 计划与进度计划在两个月内完成任务,首先在前半个月内(11月4日-11月19日),构思通过网上(图书馆)的知识与课本上的相关内容的了解与认识,确认好选择的课题与怎样设计,基本的思路想好。十五天(11月19日-12月5日)内参考资料争取完成服务端的程序,在12月5日-12月20日完成客户端的程序设计,在12月20日12月30日内完成实现报告的填写工作。在12月31日全面完成整个课题,并上交给老师。任课教师意 见

    4、备 注课程设计报告课程:学号:姓名:班级教师:时间计算机科学与技术设计名称:聊天小程序日期: 2010 年 11月 4 日 设计内容:设计一个在图形界面下,实现一个聊天室中多人聊天,也可以私聊的聊天小程序设计目的与要求:目的是为了更好的掌握java这门课程的内容,同时更好的理解与掌握socket编程,对所有面向对象的编程思想以及编程方法的一个总结、回顾和实践,掌握Java语言编程技巧。要求使用图形用户界面。能实现一个聊天室中多人聊天。可以两人私聊。(提示:使用socket通信)程序描述清晰准确,思路清晰,程序能够实现相应的功能。设计环境或器材、原理与说明、主要完成的功能、设计思路和框图:设计环

    5、境或者器材:j d k或者j c编辑器,笔记本电脑两台,网线三条,小型交换机一个。原理与说明: 建立服务端与客户端的一个或者多个连接,其中服务器,使用Server Socket监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。 客户端,使用Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。客户端不需要指定打开的端口,通常临时的、动态的分配一个1024以上的端口。主要功能:1、实现服

    6、务端与客户端的连接,实现两者之间的信息交换。 2、实现了一个服务器可以与多个客户端实现连接,即实现了一个聊天室里面可以多人聊天。 3、亦可以实现私聊的功能。设计思路与框图:服务器端接受客户端的连接请求,同时启动一个线程处理这个连接,线程不停的读取客户端输入,然后把输入加入队列中,等候处理。在线程启动的同时将线程加入队列中,以便在需要的时候定位和取出。大概的框图: chatServer端 chatclient端 创建ServerSocket对象在某端口提供监听服务 等待来自chartclient的服务请求接受chartclient端的请求用 建立连接 创建Socket对象向server的监听端返

    7、回的Socket建立连接 口请求 通过向Socket中读写数据来 数据通信 通过向新的Socket中读写数据来与chartclient端通信 与server端通信 关闭Socket结束与当前的 拆除连接 关闭Socket结束与server的通信client的通信等待其他的请求关闭ServerSocket对象结束监听服务设计过程(步骤)或程序代码(可以加页):主要代码:服务端ChatServerclass SocketThread extends Thread /线程类,用于和每个客户端连接 static Vector clientVector=new Vector();/存放每个线程信息 pr

    8、ivate Socket socket; /存放每个线程的Socket对象 String nick; /存放每个线程的昵称 private boolean firstRead; /用于判断是否为第一次接收数据 SocketThread(Socket s) /构造函数 socket=s; nick=null; firstRead=true; private void noticeDelUser() /通告所有线程的客户端,本用户退出 String msg=#+this.nick; for(int i=0;iclientVector.size();i+) if(clientVector.get(i

    9、).nick.equals(this.nick)=false) sendMsg(i,msg); private void delSocket() /关闭socket noticeDelUser(); /通告所有线程的客户端,本用户退出 clientVector.remove(this); /从clientVector中移除本线程 try socket.close(); System.out.println(socket.getInetAddress()+断开连接!); catch(IOException closeError) private void noticeAddUser() /通告所

    10、有线程的客户端,本用户进入 String msg=#+this.nick; for(int i=0;iclientVector.size();i+) sendMsg(i,msg); private void requestAllUser() /本线程请求其他有用户信息 int index=0; int i=0; for(i=0;iclientVector.size();i+) if(clientVector.get(i).nick.equals(this.nick) break; index=i; for(i=0;iclientVector.size();i+) if(index!=i) St

    11、ring msg=#+clientVector.get(i).nick; sendMsg(index,msg); private String msgForward(String msg) /对接收到的信息转发 String name; /存放目的用户昵称 String tempMsg; /存放生成的转发数据 if(firstRead=true) /若为第一次收到数据 int i; for(i=0;i=clientVector.size() /昵称不存在则: nick=msg; /在clientVector中添加本线程信息 msg=#您使用的昵称:+msg; /并通告所有线程的客户端,本用户进

    12、入 noticeAddUser(); /以及请求其他有用户信息 clientVector.add(this); requestAllUser(); firstRead=false; else msg=#您输入的昵称已经存在,请重新输入:; /昵称存在,发送系统提示 return msg; if(msg.startsWith(!)=true) /若客户端发送密语 name=msg.substring(1, msg.indexOf( ); /获得目的用户昵称,生成发送信息 tempMsg=this.nick+悄悄对+name+说:rnt+msg.substring(msg.indexOf( );

    13、else tempMsg=this.nick+:rnt+msg; /若为全体聊天 name=610665c2a05631a7bc460993bae36ee6; /此name为特殊值,专指全体聊天 if(name.equals(610665c2a05631a7bc460993bae36ee6)=false)/若为密语 int i=0; for(;i=clientVector.size() /若找不到目的客户线程,则返回系统提示 msg=#您所发送的用户名昵称不存在!; else sendMsg(i,tempMsg); /找到目的客户线程并转发 else /为全体聊天,全体转发 int i=0;

    14、for(;i100000) /则清除部分历史记录,防止占用过大内存 chatRecord.setText(chatRecord.getText().substring(chatRecord.getText().indexOf(rn)+2); public void actionPerformed(ActionEvent e) /点击sendButton则发送信息 if(e.getSource()=sendButton) sendMsg(); public void sendMsg() /向服务器发送信息 if(msgEditor!=null) if(friendList.getSelected

    15、Index()=0) /发送全体聊天信息 socketWriter.println(msgEditor.getText(); else /发送密语,并回显 socketWriter.println(!+friendList.getSelectedItem().toString()+ +msgEditor.getText(); chatRecord.append(this.nick+对+friendList.getSelectedItem().toString()+悄悄说:rnt+msgEditor.getText()+rn); else /若发送信息为空,则系统提示 chatRecord.append(!不能发送空消息rn); msgEditor.setText(); /将发送信息栏置空 class ReceiveThread extends Thread /监视输入流的类 Socket socket


    注意事项

    本文(java课程设计聊天小程序解析.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开