Java发送socket请求的工具
package com.tech.jin.util; import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket; import org.apache.log4j.Logger; public class SocketUtil{
private static Logger logger = Logger.getLogger(SocketUtil.class);
/**
* 发送socket请求
* @param clientIp
* @param clientPort
* @param msg
* @return
*/
private static synchronized String tcpPost(String clientIp,String clientPort,String msg){
String rs = ""; if(clientIp==null||"".equals(clientIp)||clientPort==null||"".equals(clientPort)){
logger.error("Ip或端口不存在...");
return null;
} int clientPortInt = Integer.parseInt(clientPort); logger.info("clientIp:"+clientIp+" clientPort:"+clientPort); Socket s = null;
OutputStream out = null;
InputStream in = null;
try {
s = new Socket(clientIp, clientPortInt);
s.setSendBufferSize(4096);
s.setTcpNoDelay(true);
s.setSoTimeout(60*1000);
s.setKeepAlive(true);
out = s.getOutputStream();
in = s.getInputStream(); //准备报文msg
logger.info("准备发送报文:"+msg); out.write(msg.getBytes("GBK"));
out.flush(); byte[] rsByte = readStream(in); if(rsByte!=null){
rs = new String(rsByte, "GBK");
} } catch (Exception e) {
logger.error("tcpPost发送请求异常:"+e.getMessage());
}finally{
logger.info("tcpPost(rs):"+rs);
try {
if(out!=null){
out.close();
out = null;
}
if(in!=null){
in.close();
in = null;
}
if(s!=null){
s.close();
s = null;
}
} catch (IOException e) {
e.printStackTrace();
}
} return rs; } /**
* 读取输入流
* @param in
* @return
*/
private static byte[] readStream(InputStream in){
if(in==null){
return null;
} byte[] b = null;
ByteArrayOutputStream outSteam = null;
try {
byte[] buffer = new byte[1024];
outSteam = new ByteArrayOutputStream(); int len = -1;
while ((len = in.read(buffer)) != -1) {
outSteam.write(buffer, 0, len);
} b = outSteam.toByteArray();
} catch (IOException e) {
logger.error("读取流信息异常"+e);
e.printStackTrace();
} finally{
try {
if(outSteam!=null){
outSteam.close();
outSteam = null;
}
if(in!=null){
in.close();
in = null;
}
} catch (IOException e) {
e.printStackTrace();
}
}
return b;
}
}
Java发送socket请求的工具的更多相关文章
- 通过java发送http请求
通常的http请求都是由用户点击某个连接或者按钮来发起的,但是在一些后台的Java程序中需要发送一些get或这post请求,因为不涉及前台页面,该怎么办呢? 下面为大家提供一个Java发送http请求 ...
- 向继电器发送socket请求(python+java)
近日,有一需求,向连接在内网的继电器发送socket请求,加以控制.原本并不复杂,只是io流/socket转换的问题,实操中却出现python代码没问题,java代码执行无响应的问题,问题很好定位:没 ...
- Java发送HTTPS请求
前言 上篇文章介绍了 java 发送 http 请求,大家都知道发送http是不安全的 .我也是由于对接了其他企业后总结了一套发送 https的工具.大家网上找方法很多的,但是可不是你粘过来就能用啊, ...
- 使用Java发送Http请求的内容
公司要将自己的产品封装一个WebService平台,所以最近开始学习使用Java发送Http请求的内容.这一块之前用PHP的时候写的也比较多,从用最基本的Socket和使用第三方插件都用过. 学习了J ...
- Java发送Http请求并获取状态码
通过Java发送url请求,查看该url是否有效,这时我们可以通过获取状态码来判断. try { URL u = new URL("http://10.1.2.8:8080/fqz/page ...
- 模拟发送http请求的工具推荐
做网站开发时,经常需要发送请求来测试自己的代码是否OK,这时候模拟发送http请求的工具就起到了很大的作用.特别是需要在请求带header时就更加的有必要使用工具.下面推荐的工具有的是基于系统开发的程 ...
- Java 发送 Https 请求工具类 (兼容http)
依赖 jsoup-1.11.3.jar <dependency> <groupId>org.jsoup</groupId> <artifactId>js ...
- Java 发送 Http请求工具类
HttpClient.java package util; import java.io.BufferedReader; import java.io.IOException; import java ...
- JAVA发送HttpClient请求及接收请求结果
1.写一个HttpRequestUtils工具类,包括post请求和get请求 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2 ...
随机推荐
- 在shell下,用命令将U盘挂载到ubuntu上,并将文件copy到U盘里面
首先将鼠标定位到ubuntu上,然后插上U盘,这时候先用指令: fidsk -l 查看一下U盘,(这是应该有一个盘符了) 如果没有的话,就尽享下面的步骤: 首先使用命令查看是那个分区,在U盘插入前后, ...
- [转]搬瓦工换机房换ip之后不能连外网
搬瓦工换机房换ip之后不能连外网 时间 2015-07-21 15:17:16 Wendal随笔 原文 http://wendal.net/2015/07/21.html 主题 iptables ...
- Java 多线程之单例设计模式
转载:https://segmentfault.com/a/1190000007504892 概念: Java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍两种:懒汉式单例.饿汉 ...
- LintCode Longest Common Subsequence
原题链接在这里:http://www.lintcode.com/en/problem/longest-common-subsequence/ 题目: Given two strings, find t ...
- Nginx location 匹配顺序整理
Nginx location模块整理 具体的Nginx安装就不在这里描述了,这里只是为了对location的描述 Nginx环境 a. 查看当前系统cat /etc/redhat-release [r ...
- UDP server & client
Server: import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; ...
- 鸟哥linux私房菜基础篇
1)注销:exit2)指令太长:命令太长的时候,可以使用反斜杠 (\) 来跳脱[Enter]符号,使挃令连续到下一行3)系统语言显示和设置命令:echo $LANG,显示当前系统语言:简体中文zh_C ...
- c++模板函数实例化的偏序机制
一:废话 今天在stackoverflow上看到一个关于c++模板specialization的问题: http://stackoverflow.com/questions/18283851/temp ...
- 点餐系统3个sprint的团队贡献分
第一次冲刺贡献分 团员名字 贡献分 麦锦俊 18分 冯婉莹 21分 李康梅 19分 张鑫相 20分 曹嘉琪 22分 第二次冲刺贡献分 团员名字 贡献分 麦锦俊 19分 冯婉莹 20分 ...
- windows2003 iis php 配置后无法执行php页面
1.问题:可以访问静态页面,无法访问php脚本页面,显示404 解决: