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