java Socket 长连接 心跳包 客户端 信息收发 demo
来源:互联网 发布:instsee新域名 编辑:程序博客网 时间:2024/05/18 00:47
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(); } }}
0 0
- java Socket 长连接 心跳包 客户端 信息收发 demo
- Socket 长连接 心跳包
- Java 心跳 Socket 长连接
- 关于socket长连接的心跳包
- 关于socket长连接的心跳包
- 关于socket长连接的心跳包
- 关于socket长连接的心跳包
- 关于socket长连接的心跳包
- socket长连接的心跳包
- 关于socket长连接的心跳包
- 关于socket长连接的心跳包
- 关于socket长连接的心跳包
- 关于socket长连接的心跳包
- Socket心跳包保持长连接
- 【Socket】关于socket长连接的心跳包
- 【Socket】关于socket长连接的心跳包
- Socket心跳包,Socket长连接之旅
- Java Socket收发异步长连接
- YARN安装配置
- Maven学习总结
- Samba配置文件常用参数详解
- 大朋m2 UI处理方法
- 愤怒的小鸟(NOIP2016提高组Day2T3)
- java Socket 长连接 心跳包 客户端 信息收发 demo
- {题解}[jzoj4907]【NOIP2016提高组复赛】蚯蚓
- linux 位操作c语言
- 株洲新程IT 教育 李赞红老师 第八章 Scroller 与平滑滚动
- Oracle基本操作
- 日期计算
- android6.0.1 usb mass storage 配置
- WAMPServer安装失败解决办法
- IOS-Swift 语言初步认识和理解