象棋游戏java程序代码 象棋游戏java编程( 八 )


StringTokenizer stinfo = new StringTokenizer(clientInfo, Constants.SEPERATOR);
String head = stinfo.nextToken();
if (head.equals(Constants.CONNECT_IDENTIFER)){
if (stinfo.hasMoreTokens()){
//关键字后的第二段数据是客户名信息
clientName = stinfo.nextToken();
}
if (stinfo.hasMoreTokens()){
//关键字后的第三段数据是客户ip信息
clientIP = stinfo.nextToken();
}
System.out.println(head); //在控制台打印头信息
}
} catch (IOException e) {
System.out.println("Error:" + e);
}
}
/**
* 向客户端发送消息
* @param msg
*/
public void send(StringBuffer msg) {
ps.println(msg);
ps.flush();
}
//线程运行方法
public void run() {
while (running) {
String line = null;
try {
//读取客户端发来的数据流
line = br.readLine();
} catch (IOException e) {
System.out.println("Error" + e);
ChatServer.disconnect(this);
ChatServer.notifyRoomPeople();
return;
}
//客户已离开
if (line == null){
ChatServer.disconnect(this);
ChatServer.notifyRoomPeople();
return;
}
StringTokenizer st = new StringTokenizer(line, Constants.SEPERATOR);
String keyword = st.nextToken();
// 如果关键字是MSG则是客户端发来的聊天信息
if (keyword.equals(Constants.MSG_IDENTIFER)){
StringBuffer msg = new StringBuffer(Constants.MSG_IDENTIFER).append(Constants.SEPERATOR);
msg.append(clientName);
msg.append(st.nextToken("\0"));
// 再将某个客户发来的聊天信息发送到每个连接客户的聊天栏中
ChatServer.sendMsgToClients(msg);
} else if (keyword.equals(Constants.QUIT_IDENTIFER)) {
// 如果关键字是QUIT则是客户端发来断开连接的信息
// 服务器断开与这个客户的连接
ChatServer.disconnect(this);
// 继续监听聊天室并刷新其他客户的聊天人名list
ChatServer.notifyRoomPeople();
running = false;
}
}
}
public void toStop(){
running = false;
}
// 覆盖Object类的equals方法
public boolean equals(Object obj){
if (obj instanceof ClientProcessor){
ClientProcessor obj1 = (ClientProcessor)obj;
if (obj1.clientIP.equals(this.clientIP)
(obj1.clientName.equals(this.clientName))){
return true;
}
}
return false;
}
// 覆盖Object类的hashCode方法
public int hashCode(){
return (this.clientIP + Constants.SEPERATOR + this.clientName).hashCode();
}
}
package Chat;
/**
* 定义聊天室程序中用到的常量
*/
public class Constants {
// 服务器的端口号
public static final int SERVER_PORT = 2525;
public static final int MAX_CLIENT = 10;
// 消息标识符与消息体之间的分隔符
public static final String SEPERATOR = ":";
// 消息信息的标识符
public static final String MSG_IDENTIFER = "MSG";
// 用户列表信息的标识符
public static final String PEOPLE_IDENTIFER = "PEOPLE";
// 连接服务器信息的标识符
public static final String CONNECT_IDENTIFER = "INFO";
// 退出信息标识符
public static final String QUIT_IDENTIFER = "QUIT";
}
象棋游戏java程序代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于象棋游戏java编程、象棋游戏java程序代码的信息别忘了在本站进行查找喔 。

推荐阅读