首先建立接收方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"; } } }
时间: 2024-10-15 08:26:50