Socket
实现效果
多个客户端通过服务器端相互之间进行通信。
概念
客户端多对多的实现的原理是把服务器作为一个中转站,中转站会会根据客户端的连接数量开辟用户线程,对接连接进来的客户端,客户端首先发送数据包给对接的用户线程, 数据包的内容包括 :
数据名 | Value |
---|---|
from | 信息起点 |
to | 信息终点 |
info | 发送信息 |
type | 发送信息类型 |
把数据包包装成一个java类如下 Message.java:
package chat;
import java.io.Serializable;
public class Message implements Serializable {
private String from;
private String to;
private String info;
private int type;
@Override
public String toString() {
return "Message{" +
"from='" + from + '\'' +
", to='" + to + '\'' +
", info='" + info + '\'' +
", type=" + type +
'}';
}
public Message(String from, String to, String info, int type) {
this.from = from;
this.to = to;
this.info = info;
this.type = type;
}
public void setFrom(String from) {
this.from = from;
}
public void setTo(String to) {
this.to = to;
}
public void setInfo(String info) {
this.info = info;
}
public void setType(int type) {
this.type = type;
}
public String getFrom() {
return from;
}
public String getTo() {
return to;
}
public String getInfo() {
return info;
}
public int getType() {
return type;
}
}
服务器端收到数据包后,从to中获取要传送到的客户端,并且把数据包发送给与其对接的服务器端线程,最后服务器端线程会将信息发送给对应的客户端