java Socket 长连接 心跳包 客户端 信息收发 demo
生活随笔
收集整理的這篇文章主要介紹了
java Socket 长连接 心跳包 客户端 信息收发 demo
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天寫了個socket的測試小程序,代碼如下
import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; import java.net.UnknownHostException;/** * @author 某家: * @version 創建時間:2015年8月17日 下午3:04:14 * 類說明 */ public class Connect {private static final ThreadLocal<Socket> threadConnect = new ThreadLocal<Socket>(); private static final String HOST = "192.168.1.120";private static final int PORT = 8888;private static Socket client;private static OutputStream outStr = null;private static InputStream inStr = null;private static Thread tRecv = new Thread(new RecvThread());private static Thread tKeep = new Thread(new KeepThread());public static void connect() throws UnknownHostException, IOException {client = threadConnect.get();if(client == null){client = new Socket(HOST, PORT);threadConnect.set(client);tKeep.start();System.out.println("========鏈接開始!========");}outStr = client.getOutputStream();inStr = client.getInputStream();}public static void disconnect() {try {outStr.close();inStr.close();client.close();} catch (IOException e) {e.printStackTrace();}}private static class KeepThread implements Runnable {public void run() {try {System.out.println("=====================開始發送心跳包==============");while (true) {try {Thread.sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch block e.printStackTrace();}System.out.println("發送心跳數據包");outStr.write("send heart beat data package !".getBytes());}} catch (IOException e) {e.printStackTrace();}}}private static class RecvThread implements Runnable {public void run() {try {System.out.println("==============開始接收數據===============");while (true) {byte[] b = new byte[1024];int r = inStr.read(b);if(r>-1){String str = new String(b);System.out.println( str );}}} catch (IOException e) {e.printStackTrace();}}}public static void main(String[] args) {try {Connect.connect();tRecv.start();} catch (UnknownHostException e) {// TODO Auto-generated catch block e.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch block e.printStackTrace();}} }服務器端直接用的TCP/UDP Socket 調試工具
調試工具下載地址
鏈接: http://pan.baidu.com/s/1e7vIY 提取碼: ipdt
轉載于:https://www.cnblogs.com/someonehere/p/4737295.html
總結
以上是生活随笔為你收集整理的java Socket 长连接 心跳包 客户端 信息收发 demo的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hive中排序和聚集
- 下一篇: 随想(二):简化别人的工作,就是简化自己