Java聊天室小程序-服务器代码实现方面 - 编程入门网
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-06-16
MesSingle(infoMemory.get(toName),con); } //-nick:接受客户端登录请求 //如果输入的匿名不存在,则登记该用户与infoMemory //如果存在则返回相应提示 else if(mes.indexOf("-nick ") != -1 && mes.startsWith ("-nick ")) { String nickName = mes.substring("-nick ".length(), mes.length()); if(infoMemory.containsKey(nickName)) transforMesSingle(adr, "-nick: !-The nickname you post is already exist,please try others."); else { infoMemory.put(nickName,adr); transforMes("Welcome "+nickName +" to Sunspot Chat!"); System.out.println(nickName+"//"+adr.toString()+" succeed in lanuching."); } } //一般消息将会转发至所有用户 else { String name = this.getConsumerName(adr); transforMes(name+": "+mes); } } /** * 通过地址得到用户的昵称 * 由于Hashtable无法通过Value获取Key,所有专门写该方法 * @param sa * @return */ private String getConsumerName(SocketAddress sa) { Enumeration<String> names = infoMemory.keys(); String name = null; while (names.hasMoreElements()) { String temp = names.nextElement(); SocketAddress adrs = infoMemory.get(temp); //进行比较 if (sa.equals(adrs)) { name = temp; break; } } return name; } /** * 向所有的用户发送数据 * @param mes */ public void transforMes(String mes) { byte[] buf = mes.getBytes(); DatagramPacket sendDatas = null; Enumeration<SocketAddress> all = infoMemory.elements (); try { while (all.hasMoreElements()) { sendDatas = new DatagramPacket (buf,buf.length,all.nextElement()); server.send(sendDatas); } } catch (SocketException s) { errorTip("!-The feedback address is error!"); } catch (IOException i) { errorTip("!-Can not send message!"); } } /** * 向单个用户发送数据 * @param adr * @param mes */ public void transforMesSingle(SocketAddress adr,String mes) { byte[] buf = mes.getBytes(); try { DatagramPacket sendDatas = new DatagramPacket (buf,buf.length,adr); server.send(sendDatas); } catch (SocketException s) { errorTip("!-The feedback address is error!"); } catch (IOException i) { errorTip("!-Can not send message!"); } } /** * 断开连接 * */ public void cutServer() { beStart = false; if(server != null) server.close(); System.out.println("!-The server is done."); } public void helpList() { System.out.println( "-help"+" 获取服务器相应操作的帮助"+"\n"+ "-run "+" 运行服务器,并同时建立信息监听"+"\n"+ "-s |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于Java聊天室小程序-服务器代码实现方面 - 编程入门网的所有评论