Java聊天室小程序-服务器代码实现方面 - 编程入门网
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-06-16
接服务器的IP地址 //如果输入命令为0,则为默认的本地IP地址 //否则为输入的IP地址 try { if(ip.equalsIgnoreCase("0")) this.serverAddress = InetAddress.getLocalHost(); else this.serverAddress = InetAddress.getByName(ip); } catch (UnknownHostException u) { errorTip("!-Sorry, IP address you put is not currect!"); } } /** * 监听信息 * */ public void listenLink() { byte[] buf = new byte[1024]; String mes = null; try { getDatas = new DatagramPacket(buf,buf.length); System.out.println("!-The Server starts listenning to message."); while(beStart) { server.receive(getDatas); mes = new String(buf,0,getDatas.getLength()); //将获取的数据传递至数据分析器 this.analyseMes(mes); } } catch (IOException e) { errorTip("!-The Server Can not receive message"); } } /** * 数据分析器,给予相应处理 * @param mes */ private void analyseMes(String mes) { //获取当前客户端的地址: SocketAddress adr = getDatas.getSocketAddress(); //-test:进行服务器与客户端的连接测试 //若成功,则将该客户端发送成功消息 if(mes.trim().equalsIgnoreCase("-test")) { transforMesSingle(adr,"-test: !-From Server:Succeed in Testing."); } //-quit:接受客户端退出信息 //将该用户的退出信息转发至所有在线成员 else if(mes.trim().equalsIgnoreCase("-quit")) { String name = this.getConsumerName(adr); System.out.println(name+"//"+adr+" quit! "); transforMes("* "+name+"退出聊天室"); infoMemory.remove(name); } //-getList:接受客户端获取列表的请求 //将所有用户连接为字符串的形式,如:"-getList,用户1,用户2...用 户n" else if(mes.trim().equals("-getList")) { StringBuffer list = new StringBuffer(); list.append("-getList,"); Enumeration<String> names = infoMemory.keys(); while (names.hasMoreElements()) { list.append(names.nextElement()+","); } transforMesSingle(getDatas.getSocketAddress(), list.toString()); } //-to:接受客户端请求,将信息转发给相应客户 //如果目标客户不存在,则向请求客户发送相应消息 else if(mes.indexOf("-to ") != -1 && mes.startsWith("- to ")) { String main = mes.substring("-to ".length(),mes.length ()); String toName = main.substring(0,main.indexOf(" ")); String name = this.getConsumerName(adr); String con = name+" say to you :"+main.substring (toName.length()+1,main.length()); if(!infoMemory.containsKey(toName)) transforMesSingle(adr, "!-The message can not be recevie by whom you send for,please check out."); else transfor |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于Java聊天室小程序-服务器代码实现方面 - 编程入门网的所有评论