资源简介
java读取DTU数据的代码,代码是项目中正在使用的,精简了一下.能用。
代码片段和文件信息
package dtu.model;
/**
* 项目名:****************
* 包名:dtu.model.NKLongSocket
* 文件名:LongSocket.java
* 文件描述:(长连接获取DTU数据接口)
* 作者 :huastone E-mail: huastone_he@163.com
* 创建时间:2013-3-22-上午11:25:21
* 版本信息:@version V1.0.0
*/
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class NKLongSocket extends Thread{
//日志处理接口
private Log mylog = LogFactory.getLog(NKLongSocket.class);
private String ip=null;//连接服务器的IP
private Integer port=null;//连接服务器的端口
private String operName = ““; //操作人
private Integer timeout = 1000*30; //连接超时设置 以毫秒为单位
private Socket socket=null;//套节字对象
private boolean close = false; // 关闭连接标志位,true表示关闭,false表示连接
private Integer sotimeout=1000*60;//读取超时时间,以毫秒为单位
//------------------------------------------------------------------------------
private ByteArrayOutputStream out;
public NKLongSocket(){
// init();
}
public NKLongSocket(String ipInteger portString operName){
this.ip = ip;
this.port = port;
this.operName = operName;
// init();
}
/**
* 初始化socket对象
* @throws IOException
*/
public void init() throws IOException{
try {
out = new ByteArrayOutputStream();
//--------------------------------------------------
InetAddress address = InetAddress.getByName(ip);
socket = new Socket();
// socket = new Socket(addressport);
socket.setKeepAlive(true);//开启保持活动状态的套接字
socket.setSoTimeout(sotimeout);//设置超时时间
socket.connect(new InetSocketAddress(address port) timeout);
close=!send(socket“2“);//发送初始数据,发送成功则表示已经连接上,发送失败表示已经断开
if(!close){
mylog.info(“建立连接成功:“+ip+“:“+port);
}else{
mylog.error(“创建连接失败:“+ip+“:“+port);
}
}catch(UnknownHostException e) {
e.printStackTrace();
socket.close();
mylog.error(“init socket Error:“+e.getMessage());
throw e;
}catch(IOException e){
e.printStackTrace();
socket.close();
mylog.error(“init socket error:“+e.getMessage());
throw e;
}
}
/**
* 读数据线程
*/
public void run() {
while(true){
//---------读数据---------------------------
close = isServerClose();//判断是否断开
if(!close){//没有断开,开始读数据
try {
// 读取数据
byte[] bytes = readStreamByte();
//处理数据方法
getLongByte(bytes);
} catch (Exception e) {
e.printStackTrace();
}
}
//---------创建连接-------------------------
while(close){//已经断开,重新建立连接
try{
mylog.info(“重新建立连接:“+ip+“:“+port);
//初始化连接
init();
}catch(Exception se){
mylog.error(“创建连接失败:“+ip+“:“+port);
close=true;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 11383 2013-08-30 10:31 model\NKLongSocket.java
文件 811 2013-08-30 10:28 model\TestDTU.java
目录 0 2013-08-30 10:24 model
----------- --------- ---------- ----- ----
12194 3
- 上一篇:飞鸽源码java版
- 下一篇:JGRAPH开发jar
相关资源
- java图片浏览器跨平台运行程序与源码
- 基于java的在线考试系统-毕业设计
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
川公网安备 51152502000135号
评论
共有 条评论