最近在网上找到了几篇长连接的文章 自己照着动手写个DEMO 记录一下
服务端
package com.example.demo.test.keepAlive;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
private int port;
private volatile boolean running = false;
private Thread connWatchDog;
public Server(int port) {
this.port = port;
}
public static void main(String[] args) {
new Server(65432).start();
}
public void start() {
if (running) return;
running = true;
connWatchDog = new Thread(new ConnWatchDog());
connWatchDog.start();
}
@SuppressWarnings("deprecation")
public void stop() {
if (running) running = false;
if (connWatchDog != null) connWatchDog.stop();
}
/**
* 处理方法
* @param yell
* @return
*/
public static Yell dispose(Yell yell) {
if(yell.getType() == 1){
System.out.println("大哥,门口的人喊了句 :"+yell.getMsg());
System.out.println("哦? 难道是自己人? 回暗号!");
return new Yell(1,"宝塔镇河妖");
}else if(yell.getType() == 2){
System.out.println("大哥,门口的人喊了句 :"+yell.getMsg());
System.out.println("呵呵,这是个细作,让他进来,做掉他.");
return new Yell(2,"...让他进来,做掉他...");
}else{
System.out.println(yell.waitAndSee());
return yell;
}
}