Java Socket长连接实现

2014-11-24 10:19:02 · 作者: · 浏览: 0

TestScoket.java

单例模式实现,继承Socket


1 public class TestSocket
2 extends Socket {
3
4 private static TestSocket instance;
5
6 private TestSocket() {
7 }
8
9 private TestSocket(String ip,int port) throws UnknownHostException, IOException{
10 super(ip,port);
11 }
12
13 public static synchronized TestSocket getInstance(String ip,int port) throws UnknownHostException, IOException {
14 if (instance == null) {
15 instance = new TestSocket(ip,port);
16 instance.setKeepAlive(true);  //主要是这个参数来保持连接的
17 instance.setSoTimeout(60);
18 }
19 return instance;
20 }
21 }
调用代码


DdzSocket socket = DdzSocket.getInstance("127.0.0.1", "8000");
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
ByteArrayOutputStream baos = new ByteArrayOutputStream();
baos.write("发送字符串".getBytes("UTF-8"));

dos.write(baos.toByteArray());
dos.flush();
服务端程序可自行在网上找一个这里就不贴出来了,