博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 通讯开发_java之接口开发-初级篇-socket通信
阅读量:6361 次
发布时间:2019-06-23

本文共 1569 字,大约阅读时间需要 5 分钟。

socket通信实现util包类实现

public class SocketThread extends Thread {

public void run() {

while (true) {

// log4j

Logger log = (Logger) LogManager.getLogger(SocketThread.class);

// 标识服务信息

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");

ServerSocket ss;// socket服务监听对象

Socket socket;// 获取监听得到的结果

BufferedReader in;// 输入流

PrintWriter out;// 输出流

try {

// 设置监听的端口,并实例监听对象

ss = new ServerSocket(SocketConstants.SOCKET_PORT_NO_EC);

while (true) {

// 开始监听,若没有客户端请求则线程一直停留在这里等待请求,

// 一旦就有请求,就获取监听到的对象

socket = ss.accept();

InputStream sis = socket.getInputStream();// socket服务获取的输入流

// 等待读取状态

// 大于零为获取完毕

while (sis.available() <= 0)

System.out.println("inputStream is waitting...");

in = new BufferedReader(new InputStreamReader(sis));// 获取输入

String line = "";// 监听到的字符串

// 读数据

while (in.ready()) {

line += in.readLine();

}

// 记录下获取到的字符串流

log.warn("client request is :" + line);

out = new PrintWriter(socket.getOutputStream(), true);// 构建输出

// 输出

out.println("server response " + sdf.format(new Date()));

// 关闭当前请求对象

out.close();

in.close();

socket.close();

}

} catch (IOException e) {

String msg = "\n" + e.getMessage();

for (StackTraceElement ste : e.getStackTrace()) {

msg += "\n" + ste.getClassName() + "-" + ste.getFileName() + "-" + ste.getMethodName() + "-" + ste.getLineNumber();

}

log.fatal(msg);

} catch (Exception ex) {

String msg = "\n" + ex.getMessage();

for (StackTraceElement ste : ex.getStackTrace()) {

msg += "\n" + ste.getClassName() + "-" + ste.getFileName() + "-" + ste.getMethodName() + "-" + ste.getLineNumber();

}

log.fatal(msg);

}

}

}

}

转载地址:http://ncima.baihongyu.com/

你可能感兴趣的文章
十、详解FFplay音视频同步
查看>>
自定义元素探秘及构建可复用组件最佳实践
查看>>
自定义Linux service脚本
查看>>
ICMP
查看>>
CentOS6 手动编译升级 gcc
查看>>
memcached的安装与开启脚本
查看>>
zabbix 邮件报警 -- sendmail
查看>>
tcpdump用法小记
查看>>
Oracle随机函数—dbms_random
查看>>
windows下开发库路径解决方案
查看>>
linux迁移mysql数据目录
查看>>
函数为左边表达式
查看>>
2015.06.04 工作任务与心得
查看>>
icinga2使用587端口发邮件
查看>>
【14】Python100例基础练习(1)
查看>>
boost bind使用指南
查看>>
Android M 特性 Doze and App Standby模式详解
查看>>
IE FF(火狐) line-height兼容详解
查看>>
TX Text Control文字处理教程(3)打印操作
查看>>
mysqld_multi实现多主一从复制
查看>>