文档章节

socket工具类-001

moz1q1
 moz1q1
发布于 2015/04/27 16:50
字数 186
阅读 87
收藏 0
package com.mo.util.stream;

import java.io.BufferedOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;

public class StreamUtil {
	private StreamUtil() {
	}

	/**
	 * 获取socket中流的内容
	 * 
	 * @param socket
	 * @return
	 */
	public static String getMessage(Socket socket) {
		if (socket == null || socket.isClosed()) {
			return null;
		}
		InputStream inputStream = null;
		int len = 1024;
		byte[] buffer = new byte[len];
		String result = null;
		try {
			inputStream = socket.getInputStream();
			while (inputStream.read(buffer, 0, len) != -1) {
				result = new String(buffer, "UTF-8");
			}
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (inputStream != null) {
				try {
					inputStream.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		return result;
	}

	/**
	 * 通过socket的流发送信息
	 * 
	 * @param socket
	 * @param message
	 */
	public static void sendMessage(Socket socket, String message) {
		if (socket == null || socket.isClosed()) {
			return;
		}
		OutputStream outputStream = null;
		try {
			outputStream = socket.getOutputStream();
			outputStream.write(message.getBytes("UTF-8"));
			outputStream.flush();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (outputStream != null) {
				try {
					outputStream.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}

	public static void sendMessageByDataOutputStream(Socket socket, String message) {
		if (socket == null || socket.isClosed()) {
			return;
		}
		OutputStream outputStream = null;
		try {
			outputStream = socket.getOutputStream();
			DataOutputStream dataOutputStream = new DataOutputStream(new BufferedOutputStream(outputStream));
			dataOutputStream.writeUTF(message);
			dataOutputStream.flush();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (outputStream != null) {
				try {
					outputStream.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
}


© 著作权归作者所有

moz1q1
粉丝 55
博文 351
码字总数 117569
作品 0
东莞
程序员
私信 提问
『开源』Slithice 2013 服务器集群 设计和源码

相关介绍文章: 《『设计』Slithice 分布式架构设计-支持一体式开发,分布式发布》 《『集群』001 Slithice 服务器集群 概述》 《『集群』002 Slithice 集群配置工具 的使用》 《『集群』003...

InkFx
2014/03/18
0
0
使用java 开发连接 Hbase程序,出现连接之后永久等待

window下 开发的日志如下 14-11-25.17:10:28.904 [main-SendThread(CentOs-PC:2181)] INFO ClientCnxn - Opening socket connection to server CentOs-PC/192.168.56.102:2181. Will not at......

zzh0424
2014/11/25
6.2K
4
【目录】姜晔的技术空间目录

逆向工程系列 逆向工程第001篇:解锁FIFA07传奇模式 逆向工程第002篇:打造自己的仙剑奇侠 逆向工程第003篇:跨越CM4验证机制的鸿沟(上) 逆向工程第004篇:跨越CM4验证机制的鸿沟(中) 逆...

ioio_jy
2014/09/15
0
0
python接口自动化小工具(简版)

一、需求 本文仅适用于http get and post 方法,其他另寻~ 1、自动读取同目录下的xls文件中的用例 2、自动请求接口,返回测试结果 二、环境 windows10 + python 27 三、目录结构 interface_...

MedivhXu
2017/08/04
344
0
WebRTC从入门到放弃

0x000 唠嗑 之前几个星期由于忙项目和各种事,前两天又刚去完Google Developer Day,很久没更文章了,今天从土里爬出来给各位献下丑。鉴于之前很多童鞋要求介绍WebRTC入门,我就来介绍下Web...

猫的天空之程
2016/12/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OpenStack 简介和几种安装方式总结

OpenStack :是一个由NASA和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenSta...

小海bug
昨天
5
0
DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
昨天
6
0
数据库中间件MyCat

什么是MyCat? 查看官网的介绍是这样说的 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵...

沉浮_
昨天
4
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
昨天
7
0
常用物流快递单号查询接口种类及对接方法

目前快递查询接口有两种方式可以对接,一是和顺丰、圆通、中通、天天、韵达、德邦这些快递公司一一对接接口,二是和快递鸟这样第三方集成接口一次性对接多家常用快递。第一种耗费时间长,但是...

程序的小猿
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部