📄 cssend.java
字号:
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.util.Iterator;
import java.util.Vector;
/**
* 服务器发送功能类
* @author ij
*
*/
public class CSSend {
private Socket ssocket;
static Vector namevec = new Vector();
/**
* 根据操作符 添加客户端信息到集合中 发送信息
* @param cm
*/
public void sendMessage(ChatMessage cm) {
ServerInfo si = null;
String srcname = null;
if (cm.getCurrent().equals("ptop")) {
Iterator it = namevec.iterator();
while (it.hasNext()) {
si = (ServerInfo) it.next();
if (CSUtil.compareSocket(ssocket, si.getClis())) {
srcname = si.getCliname();
break;
}
}
Iterator it1 = namevec.iterator();
while (it1.hasNext()) {
si = (ServerInfo) it1.next();
if (si.getCliname().equals(cm.getCliname())) {
try {
cm.setCliname(srcname);
ObjectOutputStream oos = new ObjectOutputStream(si
.getClis().getOutputStream());
oos.write(1);
oos.writeObject(cm);
oos.flush();
ObjectOutputStream oos1 = new ObjectOutputStream(
ssocket.getOutputStream());
oos1.write(1);
oos1.writeObject(cm);
oos1.flush();
} catch (IOException e) {
e.printStackTrace();
}
return;
}
}
}
if (cm.getCurrent().equals("isnetadds")) {
if(!CSUtil.checkname(cm.getCliname())){
addServerInfo(cm);
sendnameerr(cm);
return;
}
addServerInfo(cm);
String message = allCliName();
cm.setContent(message);
} else if (cm.getCurrent().equals("sendname")) {
String message = allCliName();
cm.setContent(message);
}
int i = ChatServerSystem.socketvec.size();
for (int j = 0; j < i; j++) {
Socket s = (Socket) ChatServerSystem.socketvec.get(j);
try {
ObjectOutputStream oos = new ObjectOutputStream(s
.getOutputStream());
System.out.println("send to" + s.getInetAddress());
oos.write(1);
oos.writeObject(cm);
oos.flush();
System.out.println("send:" + cm.getContent());
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 添加服务器信息到集合中
* @param cm
*/
public void addServerInfo(ChatMessage cm) {
// System.out.println("************socket");
// System.out.println(ssocket.getInetAddress());
// System.out.println("************socket");
ServerInfo si = new ServerInfo();
si.setCliname(cm.getCliname());
si.setClis(ssocket);
namevec.add(si);
}
/**
* 将所有客户端昵称放到一个字符串中 返回字符串
* @return
*/
public String allCliName() {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < namevec.size(); i++) {
sb.append(((ServerInfo) namevec.get(i)).getCliname());
// System.out.println("************" + namevec.size());
sb.append(",");
}
String message = new String(sb);
return message;
}
/**
* 发送错误的客户端昵称到指定的客户端
* @param cm
*/
public void sendnameerr(ChatMessage cm){
cm.setCurrent("nameerr");
ObjectOutputStream oos;
try {
oos = new ObjectOutputStream(ssocket.getOutputStream());
oos.write(1);
oos.writeObject(cm);
oos.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
public Socket getSsocket() {
return ssocket;
}
public void setSsocket(Socket ssocket) {
this.ssocket = ssocket;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -