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);
}
}
}
}

java之接口开发-初级篇-socket通信的更多相关文章

  1. java之接口开发-初级篇

    简述:转眼之间已经开发java有五年之余了,从以前的刚刚接触电脑,到现在的公司上班,真是转眼之间呀!前两年开发过前端,后台和Android,Android火的那几年,差点转去做Android,哈哈!后 ...

  2. java之接口开发-初级篇-webservice协议

    webservice协议 客户端: 客户端生成使用soapUI生成 外部提供webservice地址,地址后加?wsdl.选择好目录然后生成,放到项目中实现 服务端: web.xml平级目录下创建se ...

  3. java之接口开发-初级篇-http和https

    http协议util address(url地址),str(数据参数) private static HttpMethod getPostJsonMethodInRequestBody(String ...

  4. Java工程师学习指南 初级篇

    Java工程师学习指南 初级篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都 ...

  5. JAVA WEB接口开发简述

    目录 1. JAVA WEB接口开发简述 1.1. 基本了解 1.2. 提供接口 1.3. 调用接口 1. JAVA WEB接口开发简述 1.1. 基本了解 当我们想去访问其他网站的接口时候,而又不想 ...

  6. java 微信自定义菜单 java微信接口开发 公众平台 SSM redis shiro 多数据源

    A 调用摄像头拍照,自定义裁剪编辑头像,头像图片色度调节B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 freemaker模版技术 ,0个代码不用写,生成 ...

  7. 坦克大战--Java类型 ---- (3)实现socket通信

    一.实现思路 使用socket通信的一些方法来实现socket通信,客户端和服务端两边需要约定好通信的接口Port(尽量选高的),客户端需要服务端的IP地址,以实现数据交流. 同时,客户端和服务端需要 ...

  8. 网络编程-SOCKET开发之----3. socket通信工作流程

    1. TCP的socket通信流程 服务端 1)socket----创建socket对象. 2)bind----绑定本机ip+port. 3)listen----监听来电,若在监听到来电,则建立起连接 ...

  9. java学习小笔记(三.socket通信)【转】

    三,socket通信1.http://blog.csdn.net/kongxx/article/details/7288896这个人写的关于socket通信不错,循序渐进式的讲解,用代码示例说明,运用 ...

随机推荐

  1. 修改jupyter notebook的默认路径

    我的系统环境是win10,安装了anaconda3 for python 3.6.6首先需要配置notebook的变量环境:打开 cmd 输入命令 jupyter notebook --generat ...

  2. C# 4.0 不要跨程序集用dynamic指向匿名类型 (转载)

    今天写代码时偷懒用了dynamic,结果遇到问题,运行时始终无法获取dynamic对象的属性.原问题简化后如下: 程序集A包含SampleClass类,有一个静态方法,接收一个dynamic类型参数并 ...

  3. 编译nginx错误:make[1]: *** [/pcre//Makefile] Error 127

    --with-pcre=DIR 是设置源码目录,而不是编译安装后的目录.

  4. SpringMVC转发页面405错误

    需要在该方法前加上:@ResponseBody注解 加上这个注解后可能在转发页面的时候出现问题,则需要在方法的参数中增加HttpServletRequest 和HttpServletResponse参 ...

  5. Spring Cloud Consul 之Greenwich版本全攻略

    什么是Consul Consul是HashiCorp公司推出的开源软件,使用GO语言编写,提供了分布式系统的服务注册和发现.配置等功能,这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全 ...

  6. vim内替换文件内容

    几个常用的方法如下: :%s/foo/bar/g 把全部foo替换为bar,全局替换 :s/foo/bar/g 当前行替换foo为bar :%s/foo/bar/gc 替换每个foo为bar,但需要确 ...

  7. echarts使用方法

    1.引入完整版echarts.min.js. 2.为ECharts准备一个具备大小(宽高)的Dom . <div id="main" style="width: 6 ...

  8. homebrew 使用心得

    ''' 安装anaconda 安装命令: brew search anaconda brew cask install anaconda 添加环境变量: vi ~/.bash_profile expo ...

  9. SQL注入总结篇

    分类SQL注入的攻击方式根据应用程序处理数据库返回内容的不同,可以分为可显注入.报错注入和盲注. 可显注入攻击者可以直接在当前界面内容中获取想要获得的内容. 报错注入数据库查询返回结果并没有在页面中显 ...

  10. 自己第一次使用ANTLR遇到的问题

    觉得既然是第一次尝试ANTLR嘛,那就来个简单点的,parse Windows 的 hosts 文件吧,结果...... 先上一段 grammar: grammar hosts; hostfile: ...