📄 udpserver.java
字号:
package server;
import java.net.*;
import java.util.*;
public class UDPServer implements Server{
Map<String,User> users;
DatagramSocket ds;
ServerAction action;
public UDPServer(){
try {
users=new HashMap<String,User>();
ds=new DatagramSocket(9000);
action=new UDPServerAction(ds);
} catch (SocketException e) {}
}
public void service() throws Exception{
act();
}
public void sendAll(String text){
Collection<User> vs=users.values();
for(User u:vs) action.send(text, u);
}
public void act() {
try {
while (true) {
String t = action.receive();
String[] ss = t.split(":");
if (ss[0].equals("0")){
User u=users.get(ss[2]);
action.send(t, u);
}
if (ss[0].equals("1")){
User user=StaticData.currentUser;
user.setName(ss[1]);
Set<String> others=users.keySet();
for(String o:others){
action.send("1:"+o, user);
}
users.put(ss[1], user);
this.sendAll(t);
}
if (ss[0].equals("2")){
users.remove(ss[1]);
this.sendAll(t);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -