最近项目需要,恶补学习了一些socket知识,于是顺便练习编写了这个socket相互通讯的程序,希望可以给大家一点启示。
首先我们需要写出服务器端,代码如下:我们需要本地新建一个端口,其他客户端通过ip及端口访问进来。
package Socket1;
import javax.swing.plaf.metal.OceanTheme;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
/**
* Created by fx on 2017/9/28.
*/
public class SocketServer {
private static ArrayList<Socket> list = new ArrayList<>();
public static void main(String[] args) throws IOException {
//上线用户
Socket s = null;
//用户
String ip = null;
try {
//构建服务器对象
ServerSocket ss = new ServerSocket(8888);
//构建 用户集合
list = new ArrayList();
System.out.println("服务器准备就绪 ...");
//先从键盘接收信息
//写入到 Socket 中
//循环监听
while(true){
//上线用户
s = ss.accept();
//上线的人都添加到 集合中
list.add(s);
//获取 Socket IP
ip = s.getInetAddress().getHostAddress();
System.err.println( ip + " 用户上线了 , 当前在线用户为: " + list.size() + "人 !" );
//构建 发送信息线程
M2MSend send = new M2MSend(s);
send.start();
//f服务器输入信息
M2MSendAll sendAll = new M2MSendAll();
sendAll.start();
}
} catch (IOException e) {
//用户下线