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相关推荐
- java socket 心跳包_socket中的短连接与长连接,心跳包示例详解
TCP连接简介 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接, 当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接, 连接的建立是需要三 ...
- java长连接心跳包_socket中的短连接与长连接,心跳包示例详解
TCP连接简介 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接, 当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接, 连接的建立是需要三 ...
- java socket 长连接事例
一 .我们知道java的socket是基于TCP的连接,而ServerSocket 的accept()方法是阻塞的,直到有客户端连接到服务器端,我们常用多线程的方式来实现服务器端响应多个客户端,以下是 ...
- java Socket长连接
java socekt 同步套节字编程主要用到java.net.Socket类,通常情况下我们需要socket的长连接模式.其次就是在连接的另一端断开之后需要及时响应. 对于连接的判断,socket提 ...
- php 长连接 心跳包,Swoole中的长连接和心跳包
长连接说简单一点就是不会断的连接
- java socket长连接怎么维持_socket长连接的维持
import java.io.Serializable; import java.text.SimpleDateFormat; import java.util.Date;/** * 维持连接的消息对 ...
- Android长连接心跳机制
在写之前,我们首先了解一下为什么android维护长连接需要心跳机制,首先我们知道,维护任何一个长连接都需要心跳机制,客户端发送一个心跳给服务器,服务器给客户端一个心跳应答,这样就形成客户端服务器的一 ...
- 【Socket】关于socket长连接的心跳包
TCP的socket本身就是长连接的,那么为什么还要心跳包呢? 在smack里有个30s发送一个空消息的线程,同样关于心跳包(keepalive) 据网络搜索到的资料解释如下 内网机器如果不主动向外发 ...
- 关于socket长连接的心跳包
出于最近对im研究的兴趣,看到smack里有个30s发送一个空消息的线程,了解了下关于心跳包,keepalive的知识. TCP的socket本身就是长连接的,那么为什么还要心跳包呢? 搜索到的资料解 ...
最新文章
- android:关于主工程和library project
- JS打印指定区域内容
- 广度深度都要,亚马逊是如何推动 Alexa 内生成长的?
- EIgen:Matricx和vector类的定义和使用
- 手机适配鸿蒙教程,鸿蒙系统支持手机介绍
- lfu算法实现java_LFU五种实现方式,从简单到复杂
- mysql存储过程灌数据_【mysql实战】存储过程灌入一百万数据
- DDMF PluginDoctor Mac - 插件分析器音频质量测试
- python---用python实现冒泡排序
- Apache Hadoop YARN
- Netty:原理架构解析
- 微信小程序选项卡功能
- Landsat遥感影像下载
- Windows系统蓝屏代码分析
- 崩坏3区号+86_86的区号是代表中国!那82是代表哪个国家?
- GridControl 单元格自动换行
- c++ Linux windows学习路线
- python go 的区别
- 51单片机c语言常用语句详解,51单片机之C语言-4.5基本语句之条件选择语句
- 乱码解决(二)——文件转码