基于Socket的网络聊天系统开发与设计_第1页
基于Socket的网络聊天系统开发与设计_第2页
基于Socket的网络聊天系统开发与设计_第3页
基于Socket的网络聊天系统开发与设计_第4页
基于Socket的网络聊天系统开发与设计_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于Socket的网络聊天系统开发与设计f一.绪论 5 5 6 6 9 二.系统需求分析 三.系统总体设计 四.系统功能模块设计 4.1.1服务器等待连接线程设计 4.1.2服务器处理客户端信息线程设计 五.系统测试 六.结束语 七.参考文献 一.绪论1.1课题背景Internet是目前世界上最大的电脑互联网络,它遍布全球,并将世界各地不同规模和大小的网络连接成为一个整体。1.2课题研究内容及意义通信,即私聊(3)实现一对多的通信,即群聊(4)实现点对点的文件传输。1.3系统相关技术介绍Java语言是目前流行的一种网络编程语言,它的面向对象、跨平台和分布强大的网络功能可以把整个Internet作为一个统一的运行平台,极大地拓展了并进而引发带动了Java产业的发展和兼容性而迈出的重要一步,同时也是JavaJava增加了垃圾回收机制、异常处理和新的限定词等功能。这物理层:对应于网络的基本硬件,这也是Internet物理构成,即我们可以制数据,就可以使用IP协议加入InterIP协议把全世界上所有愿意接入Internet的电脑局域网络连接起来,使得它尽管电脑通过安装IP软件,从而保证了电脑之IP协议还不能解决资料分组在传输过程中可能出现的问题。因此,假设要解决有两者的结合,才能保证Internet在复杂的环境下正常运行。但凡要连接到Internet的电脑,都必须同时安装和使用这两个协议,因此在实际中常把这两在Internet上有很多这样的主机,这些主机一般运行了多个服务软件,同重要的SocketAPI:.Socket继承于java.lang.Object,有八个构造器,其方法并不多,下面介绍使用最频繁的三个方法,其它方法可以参见类中重写run(),加入线程所要执行的代码即可。下面是一个例子:}publicvoidrun(){while(true){}}publicstaticvoidmain(Stringargs[]){for(inti=0;i〈5;i++)newMyThread(i+1).start();}}}publicvoidrun(){while(true){}}publicstaticvoidmain(Stringargs[]){for(inti=0;i〈5;i++)}}3.死亡状态:正常情况下run()返回使得线程死亡。调用stop()或等待获得CPU时间时,线程调度系统根据各个线程的优先级来决定给谁分配你可以调用Thread类的方法getPriority()和setPriority()来存取线由于我们可以通过private关键字来保证数据对象只能被方法访问,所以二.系统需求分析务器模型一般分为循环服务器和并发服务器,循环服务器一次只能处理一个连lllllllllllll三.系统总体设计服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服本聊天系统采用的是目前流行服务器/客户端架构来设置的,同时采用了三这样可以合理的将各个任务分配至客户端和服务器端,从而降低系统的通信开lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll四.系统功能模块设计4.1服务器端的设计publicvoidrun(){try{while(true){s=ss.accept();sr.srs=s;sr.start();}e.printStackTrace();}}}Socketsrs;Stringsadress;publicvoidrun(){try{InputStreamReader(srs.getInputStream()));PrintStream(srs.getOutputStream());sadress=srs.getInetAddress().toString().substring(1);while(true){Stringcodeline=br.readLine();if(codeline!=null){System.out.println(codeline+";;;;;;;;;;");if(codeline.startsWith("@")){//有人上线,并通if(readFromFile(codeline.split("@")[1],codeline.split("@")[2]).equals("true")){if(!mapip.containsKey(codeline.split("@")[1])){System.out.println(codeline+"有人登陆了");codeline.split("@")[1];System.out.println(username);Iteratorit=set.iterator();StringBuffer(",");while(it.hasNext()){Stringa=(String)it.next();sb.append(a+",");}Iteratoriit=set.iterator();while(iit.hasNext()){Stringa=(String)iit.next();pss.println(sb.toString());}}else{ps.println("@two");}}else{ps.println("@false");}}elseif(codeline.startsWith("end=")){//有人下Stringleave=codeline.split("=")[1];System.out.println(leave+"下线");Iteratorit=set.iterator();StringBuffer(",");while(it.hasNext()){Stringa=(String)it.next();sb.append(a+",");}Iteratoriit=set.iterator();while(iit.hasNext()){Stringa=(String)iit.next();pss.println(sb.toString());}}elseif(codeline.startsWith("giveip=")){//要Stringnme=codeline.split("=")[1];Stringtonme=codeline.split("=")[2];}elseif(codeline.startsWith("=@")){Stringna=codeline.split("=@")[1];Stringpsw=codeline.split("=@")[2];if(writeToFile(na,psw)){ps.println("=true");}else{ps.println("=false");}}elseif(codeline.contains("=states=")){Stringuser=codeline.split("=")[0];Stringstates=codeline.split("=")[2];if(states.equals("在线")){Iteratorit=set.iterator();StringBuffer(",");while(it.hasNext()){Stringa=(String)it.next();sb.append(a+",");}Iteratoriit=set.iterator();while(iit.hasNext()){Stringa=(String)iit.next();pss.println(sb.toString());}}else{Iteratorit=set.iterator();StringBuffer(",");while(it.hasNext()){Stringa=(String)it.next();if(!a.equals(user))sb.append(a+",");}Iteratoriit=set.iterator();while(iit.hasNext()){Stringa=(String)iit.next();pss.println(sb.toString());}}}else{//发送群消息Iteratoriit=set.iterator();while(iit.hasNext()){Stringa=(String)iit.next();

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论