java--socket实现一个client像还有一个client发送信息
JAVA 实现 一个 -- socket Client 还有
2023-09-27 14:27:03 时间
首先建立接收方socket服务端
package com.haier.socket.server; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.Socket; import org.apache.log4j.Logger; import com.haier.socket.PolicyServer; public class TVServer implements Runnable { private Logger logger = Logger.getLogger(this.getClass().getName()); private Socket client; public TVServer(Socket client) { this.client = client; } public void run() { logger.info("TV:client对象:" + client); try { BufferedReader in = new BufferedReader(new InputStreamReader( client.getInputStream())); String flag = "aa"; logger.info("TV:flag :" + flag); // 获取TV端SOCKET连接,将数据传给TV端 PolicyServer.tvSocketMap.put(flag, client); } catch (Exception e) { logger.info("error in the close the socket!"); e.printStackTrace(); } finally { } } }
再创建发送socket服务端
package com.haier.socket.server; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; import org.apache.log4j.Logger; import com.haier.bean.PolicyBean; import com.haier.json.PolicyJson; import com.haier.socket.PolicyServer; public class WEBServer implements Runnable { private Logger logger = Logger.getLogger(this.getClass().getName()); private Socket WebSocket; public WEBServer(Socket client) { this.WebSocket = client; } public void run() { logger.info("web:client对象:"+ WebSocket); Socket tvSocket = null; try { // web端 BufferedReader webIn = new BufferedReader(new InputStreamReader( WebSocket.getInputStream())); while(true){ String webStr = webIn.readLine(); if("bye".equals(webStr)){ break; } PrintWriter webOut = new PrintWriter(WebSocket.getOutputStream()); webOut.println("收到信息..."); webOut.flush(); // PolicyBean policyBean = PolicyJson.getMacJson(webStr); String key = "aa"; logger.info("key: " + key + ",web:" + webStr); // 获取TV端SOCKET连接,将数据传给TV端 tvSocket = PolicyServer.tvSocketMap.get(key); PrintWriter tvOut = new PrintWriter(tvSocket.getOutputStream()); tvOut.println(webStr); tvOut.flush(); } tvSocket.close(); WebSocket.close(); } catch (Exception e) { logger.info("error in the close the socket!"); e.printStackTrace(); } finally { } } }
创建两个測试客户端,一个接受、一个发送client
package com.test; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; public class ClientWEB { /** * @param args */ public static void main(String[] args) throws Exception { Socket client = new Socket("localhost", 9001); BufferedReader in = new BufferedReader(new InputStreamReader( client.getInputStream())); PrintWriter out = new PrintWriter(client.getOutputStream()); BufferedReader wt = new BufferedReader(new InputStreamReader(System.in)); while (true) { String str = wt.readLine(); // String str = "jonathan"; out.println(str); out.flush(); System.out.println("client2:" + in.readLine()); } } }
package com.test; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; public class ClientTV { /** * @param args */ public static void main(String[] args) throws Exception{ Socket client = new Socket("localhost", 9000); BufferedReader in = new BufferedReader(new InputStreamReader( client.getInputStream())); PrintWriter out = new PrintWriter(client.getOutputStream()); while (true) { String str = in.readLine(); System.out.println("client1:" + str); // String str = "jonathan"; } } }
相关文章
- 华为技术专家教你如何实现一个Java连接池?
- Java架构师:概述
- Java 实现:统计一个字符串中连续的相同字符构成的子串
- Java 设计模式之单例模式
- Java反射机制demo(四)—获取一个类的父类和实现的接口
- 自定义字段的设计与实现(Java实用版)
- 用Maven实现一个protobuf的Java例子
- Java高并发专题之37、如何实现一个通用的延迟队列?
- Java泛型专题之1、万字长文详解Java泛型
- Java实现一个简单的缓存方法
- JAVA一个接口多个实现逐个调用
- Java中解决中文乱码问题的方法
- 一行代码实现java list去重
- 一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
- Java IO(4) 字符流 BufferedReader和BufferedWriter实现纯文本文件拷贝
- [译]Constraint Layout 动画 |动态 Constraint |用 Java 实现的 UI(这到底是什么)[第三部分]
- java实现:将一个数各个位数相加
- java实现:将一个数逆序输出
- Java深入理解AOP(什么是AOP,AOP底层实现原理、应用)
- Java生成微信小程序二维码,5种实现方式,一个比一个简单
- 购物车的原理及Java实现(仿京东实现原理)
- Java连接mysql中遇到的一些问题及解决方法
- Javascript实现Java的HashMap(链表散列)