快速业务通道

Java聊天室小程序-服务器代码实现方面 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16

Java聊天室小程序-服务器代码实现方面

时间:2011-06-19 51cto博客 sundunjam

服务器的实现效果:

1.输入-help得到所有有关服务器操作的命令

2.输入-run进入服务器各项内容初始化

3.输入-stop断开服务器

4.输入-quit断开服务器,并退出操作

5.服务器创建成功后,会通过单独的线程运行监听客户端信息(listenLink)

6.服务器接收到数据后,会将数据移交至数据分析器(analyseMes)处理

7.当用户确定连接并确定昵称后,服务器将该用户的地址及姓名存储在 infoMemory中。

服务器的类与方法:

1.测试服务器创建:testServer(String ip,int port)

2.初始化服务器 :initServer(String ip,int port)

3.确定IP与Port :fixServerLink(String ip,int port)

4.信息监听器  :listenLink()

5.数据分析器  :analyseMes(String mes)

6.获取地址用户名:getConsumerName(SocketAddress sa)

7.数据转发器 :transforMes(String mes)

8.数据单项转发器:transforMesSingle(SocketAddress adr,String mes)

9.停止服务器  :cutServer()

10.获得帮助列表 :helpList()

11.错误提示方法 :errorTip(String str)

12.在主函数中进行相应操作

Java聊天室小程序-服务器代码实现方面(2)

时间:2011-06-19 51cto博客 sundunjam

重点注意的地方:

与客户端相仿,为了顺利监听信息,需要另一个线程运行信息监听器

package com.sunspot.udp.chat;

import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketAddress; import java.net.SocketException; import java.net.UnknownHostException; import java.util.Enumeration; import java.util.Hashtable; import java.util.Scanner; public class Server implements Runnable{   private DatagramSocket server = null;   private DatagramPacket getDatas = null;   private InetAddress serverAddress = null;   private int port = 0;   //开始运行监听的变量   private boolean beStart = false;   //用来测试服务器的变量   private boolean test = true;   //信息存储器   private Hashtable<String,SocketAddress> infoMemory = new Hashtable<String,SocketAddress>();   /**    * 测试服务器连接    * @param ip    * @param port    * @return    */   public boolean testServer(String ip,int port) {    this.initServer(ip, port);    return test;   }   /**    * 服务器初始化    * @param ip    * @param port    */   public void initServer(String ip,int port) {    //确定IP与port输入正确    this.fixServerLink(ip,port);    try {     server = new DatagramSocket(this.port,serverAddress);     System.out.println("!-The Server Initialization Success!");     //可以开始运行变量     beStart = true;    } catch (SocketException  s) {     //如果出现异常,则服务器测试不通过     test = false;     errorTip("!-The Server Initialization Fail!");    } finally {    }   }   /**    * 确定服务器IP和端口信息    * @param ip    * @param port    */   private void fixServerLink(String ip,int port) {    //判断连接服务器的端口号    //如果输入命令为0,则为默认端口号9999    //否则端口号为新端口号    if(port == 0)     this.port = 9999;    else     this.port = port;    //判断连

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号