socket通讯工具类

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

/**
 * socket通讯工具类
 * @author wpj_service
 *
 */
public class SocketUtil {
	private static final String ADDRESS = "127.0.0.1";
	private static final String PORT = "19";
	public static ResponseBean getResponseXML(String message){
		ResponseBean response = new ResponseBean();
		try {
			Socket socket = new Socket(ADDRESS, Integer.parseInt(PORT));
			 //输出流
            OutputStream os=socket.getOutputStream();
            PrintWriter pw=new PrintWriter(os);
            //输入流
            InputStream is=socket.getInputStream();
            BufferedReader br=new BufferedReader(new InputStreamReader(is));
            
            //向服务器写入数据
            pw.write(message);
            pw.flush();
            socket.shutdownOutput();
            
            //接收服务器的相应
            String reply=null;
            StringBuilder sb=new StringBuilder();
            while(!((reply=br.readLine())==null)){
            	sb.append(reply.trim());
            }
            response.setData(sb.toString());
			response.setIsSuccess(true);
            //关闭资源
            br.close();
            is.close();
            pw.close();
            os.close();
            socket.close();
		} catch (UnknownHostException e) {
			response.setIsSuccess(false);
			response.setMessage("内部连接失败");
			LoggerUtil.insertLog("Socket连接失败");
		} catch (IOException e) {
			response.setIsSuccess(false);
			response.setMessage("内部通讯出错");
			LoggerUtil.insertLog("Socket通讯出错");
			e.printStackTrace();
		} catch (Exception e) {
			response.setIsSuccess(false);
			response.setMessage("内部通讯解析失败");
			LoggerUtil.insertLog("Socket通讯解析失败");
			e.printStackTrace();
		}
		return response;
	}
}
可以返回对象也可以返回其他类型,这样封装耦合更少。

响应对象:

import java.util.Map;

public class ResponseBean {
	private Boolean isSuccess;
	private String message;
	private String data;
	private Map<String,Object> more;
	public Boolean getIsSuccess() {
		return isSuccess;
	}
	public void setIsSuccess(Boolean isSuccess) {
		this.isSuccess = isSuccess;
	}
	public String getMessage() {
		return message;
	}
	public void setMessage(String message) {
		this.message = message;
	}
	public String getData() {
		return data;
	}
	public void setData(String data) {
		this.data = data;
	}
	public Map<String, Object> getMore() {
		return more;
	}
	public void setMore(Map<String, Object> more) {
		this.more = more;
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值