Java Socket长连接实现(和C通信)


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();

服务端程序可自行在网上找一个这里就不贴出来了,


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM