Socket桥(转载)
最好方案:使用haproxy 或者nginx转发。自己写程序性能和监控难保证,推荐使用开源软件替代。
源地址为:http://baishaobin2003.blog.163.com/blog/static/57381812201332355422107/
Socket在使用过程中往往会出现这样的问题
在生产的机器有一个服务,但是测试环境不能连接生产
中间有一台公共机可以连接两台机器,
这种情况下需要用到一个Socket桥
测试机器发送数据到公共机上,然后从公共机上发送数据到生产机器,由生产机返回数据到公共机,在有公共机转发回来测试机上来
=================================================================================AGClientBase.java ================================================================================= import java.io.InputStream; import java.io.OutputStream; import java.net.Socket;public class AGClientBase {Socket socket = null;InputStream is = null;OutputStream os = null;String tCode = null;public String testClient(String data) {try {// 建立连接socket = new Socket(getValueByKey.readValue("IpAddrss"), Integer.valueOf(getValueByKey.readValue("Port")).intValue());// 发送数据os = socket.getOutputStream();os.write(data.getBytes());// 接收数据is = socket.getInputStream();byte[] b = new byte[4000];is.read(b);return new String(b).trim();} catch (Exception e) {System.out.println("连接异常,请检查配置文件或对方Socket连接");return null;} finally {try {// 关闭流和连接 is.close();os.close();socket.close();} catch (Exception e2) {}}}} ======================================================================================================LinkServer.java ====================================================================================================== 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.ServerSocket; import java.net.Socket; public class LinkServer { public static void main(String[] args) throws IOException { ServerSocket server = new ServerSocket(10000); while (true) { Socket socket = server.accept();invoke(socket); } } private static void invoke(final Socket socket) throws IOException { new Thread(new Runnable() { public void run() { AGClientBase ag = new AGClientBase();BufferedReader in = null; PrintWriter out = null; try { InputStream inputStream = socket.getInputStream();OutputStream outputStream = socket.getOutputStream();byte[] arry = new byte[4000];while(true){inputStream.read(arry);outputStream.write(ag.testClient(new String(arry)).getBytes());outputStream.flush();socket.close(); } } catch(IOException ex) { // ex.printStackTrace(); } finally { try { in.close(); } catch (Exception e) {} try { out.close(); } catch (Exception e) {} try { socket.close(); } catch (Exception e) {} } } }).start(); } } ======================================================================================================LinkService.java ====================================================================================================== public interface LinkService {public String reMsg();public String reMsg(String repmsg); }======================================================================================================getValueByKey ======================================================================================================import java.io.FileInputStream; import java.io.IOException; import java.util.Properties; /*** @author wyyw* 读取配置文件* 根据配置文件中的内容获取要连接的地址** */ public class getValueByKey {private static String filename= "linkconfig.propertes";/*** @author wyyw* @param key 要查询的内容key* @return 根据key查询出来的value** */public static String readValue( String key){Properties props = new Properties();FileInputStream in=null;try{in = new FileInputStream(filename);props.load(in);String value = props.getProperty(key);return value;}catch(Exception e){System.out.println("读取配置文件失败,请检查配置文件 linkconfig.propertes 格式如下");System.out.println("IpAddrss=*.*.*.*");System.out.println("Port=*");return null;}finally{try {in.close();} catch (IOException e) {System.out.println("读取配置文件失败,请检查配置文件 linkconfig.propertes 格式如下");System.out.println("IpAddrss=*.*.*.*");System.out.println("Port=*");}}} } ======================================================================================================linkconfig.propertes 和项目SRC文件夹同级 ====================================================================================================== IpAddrss=127.0.0.1Port=6500
Socket桥(转载)相关推荐
- Python基础-socket编程
一.网络编程 自从互联网诞生以来,现在基本上所有的程序都是网络程序,很少有单机版的程序了. 计算机网络就是把各个计算机连接到一起,让网络中的计算机可以互相通信.网络编程就是如何在程序中实现两台计算机的 ...
- 基于TCP协议的socket通信
一.服务器端 1.创建serverSocket,即服务器端的socket,绑定指定的端口,并侦听此端口 ServerSocket server = new ServerSocket(8888); 2. ...
- android 入门-Android Permission denied(不允许连接Socket) 错误
Android Permission denied(不允许连接Socket) 错误 转载于:https://www.cnblogs.com/luquanmingren/p/4260633.html
- epoll socket 服务端中read和write的返回值讨论
2019独角兽企业重金招聘Python工程师标准>>> 先贴一段代码,代码很简单要看过epoll如何使用,都应该能看懂. 这是服务端程序: #include <sys/sock ...
- C# Socket编程笔记(转)
C# Socket编程笔记 http://www.cnblogs.com/stg609/archive/2008/11/15/1333889.html TCP Socket: Server 端连接步骤 ...
- 割点和桥算法——摘自《算法艺术与信息学竞赛》
http://blog.csdn.net/cicirise/archive/2009/04/13/4068611.aspx 最近在做圆桌骑士的问题,在一个无向图中求出双连通分量,判断各双连通分量中是否 ...
- 多线程TCP的socket通信
应用多线程来实现服务器与多客户端之间的通信. 基本步骤: 1.服务器端创建ServerSocket,循环调用accept()等待客户端的连接 2.客户端创建一个socket并请求和服务器端的连接 3. ...
- BSD Socket~TCP~Example Code
TCP 协议实现 C版本号,可用于Mac OS X机器上执行 Server: /* Setting up a simple TCP server involves the following step ...
- C++学习之Socket
Socket是什么 socket就是套接字的意思,用于描述地址和端口.应用程序通过socket向网络发出请求或者回应. socket编程有三种: 流式套接字(SOCK_STREAM) 数据报套接字(S ...
最新文章
- 网易严选 x 网易有数:数据产品+数据中台双引擎模式实践
- 一文详解ORB-SLAM3
- python考核总结_Python阶段总结
- php的异常详解,PHP5中的异常处理详解
- PowerDesigner pdm生成Access的方法
- java headless_使用Chrome Headless 快速实现java版数据的抓取
- 从头编写 asp.net core 2.0 web api 基础框架 (2)
- LeetCode之两数之和
- Visio图形自动编号
- MyBatis 延迟加载的三种加载方式深入,你get了吗?
- openssl内存分配,查看内存泄露
- 如何用MathType快速输入公式
- sql-mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION问题解决
- LAMP架构调优(五)——网页缓存设置
- construct2游戏设计与制作
- garageband for mac下载(含教程+吉他和弦)
- vivo android 6.0 root,vivo手机怎么获取root权限?vivo手机一键ROOT教程
- 怎么查看html页面,网页浏览记录如何查看_怎样查历史网页浏览记录
- 安卓linux获取最高权限获取,安卓root是什么意思(获取手机最高权限)
- 币优网区块链原理浅析
热门文章
- C# 复制幻灯片(包括格式、背景、图片等)到同/另一个PPT文档
- java核心技术读书笔记1
- Javascript:charCodeAt()方法及示例
- Windows7下最新Android开发环境搭建(JDK1.7 + Eclipse Indigo(3.7) + SDK-r12 + ADT-12)
- C#减少图片文件大小和尺寸
- WebAssembly 的由来
- A+B Problem
- 阿里云飞天技术出海 eWTP落地马来西亚
- 文化致胜的时代 协同OA可以这样助力企业文化建设
- 求从第一列走到第n列的最短路径