首先建立接收方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--socket实现一个client像还有一个client发送信息的更多相关文章

  1. 用Java socket (TCP通信模型)实现一个简单的web 服务器

    package cn.magicdu.think.socket; import java.io.OutputStream; import java.io.PrintWriter; import jav ...

  2. JAVA Socket 实现HTTP与HTTPS客户端发送POST与GET方式请求

    JAVA Socket 实现HTTP与HTTPS客户端发送POST与GET方式请求 哇,一看标题怎么这么长啊,其实意思很简单,哥讨厌用HTTP Client做POST与GET提交 觉得那个毕竟是别人写 ...

  3. Java Socket应用---通信是这样练成的

    网络基础简介 Java 中网络相关 API 的应用     Java 中的 InetAddress 的应用   Test01.java package com.imooc; import java.n ...

  4. Java socket详解(转)

    一:socket通信基本原理. 首先socket 通信是基于TCP/IP 网络层上的一种传送方式,我们通常把TCP和UDP称为传输层. 如上图,在七个层级关系中,我们将的socket属于传输层,其中U ...

  5. Java Socket 通信实例 - 转载

    基于Tcp协议的简单Socket通信实例(JAVA)   好久没写博客了,前段时间忙于做项目,耽误了些时间,今天开始继续写起~ 今天来讲下关于Socket通信的简单应用,关于什么是Socket以及一些 ...

  6. java socket之传输实体类对象

    一.TCP编程     TCP协议是面向连接的.可靠地.有序的,以字节流的方式发送数据.java实现TCP通信依靠2个类:客户端的Socket类和服务器端的ServerSocket类. 基于TCP通信 ...

  7. Java——socket

    Server: import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public cla ...

  8. Java Socket实战之三:传输对象

    转自:https://i.cnblogs.com/EditPosts.aspx?opt=1 前面两篇文章介绍了怎样建立Java Socket通信,这一篇说一下怎样使用Java Socket来传输对象. ...

  9. Java socket详解

    参考 https://www.jianshu.com/p/cde27461c226 刚给大家讲解Java socket通信后,好多童鞋私信我,有好多地方不理解,看不明白.特抽时间整理一下,详细讲述Ja ...

  10. Java Socket编程

    Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket.像大家熟悉的QQ.MSN都使用了Socket相关的技术. ...

随机推荐

  1. Codeforces 41D Pawn 简单dp

    题目链接:点击打开链接 给定n*m 的矩阵 常数k 以下一个n*m的矩阵,每一个位置由 0-9的一个整数表示 问: 从最后一行開始向上走到第一行使得路径上的和 % (k+1) == 0 每一个格子仅仅 ...

  2. [week2]每周总结与工作计划

    这周总体过的还不错吧,没有颓废多少 = =... 果然有计划能够让效率提高,看了每周做个计划是很有益的. 这周前几天照例很忙,课比较多.后面几天每天早上都会安排下今天的计划,这样做起事来就有条理性多了 ...

  3. 【转】LINUX下一款不错的网站压力测试工具webbench

    原文链接:http://blog.csdn.net/xinqingch/article/details/8618704 安装: wget http://blog.s135.com/soft/linux ...

  4. 【集训笔记】归纳与递推【HDOJ1297

    例:(2050)折线分割平面 问题描述: 平面上有n条折线,问这些折线最多能将平面分割成多少块? 样例输入 1 2 样例输出 2 7 平面上有n条折线,问这些折线最多能将平面分割成多少块? 解: 折线 ...

  5. vs2010断点使用技巧

    msdn:http://msdn.microsoft.com/zh-cn/library/vstudio/5557y8b4.aspx 有很多断点的文章. 为提供更大的灵活性,Visual Studio ...

  6. AzureDev 社区活动获奖者公布

    今天,我们高兴地宣布 AzureDev社区活动的获奖者,并向这 5 个非盈利技术教育组织发放 10 万美元奖金.在 2013 年的Build大会上宣布的 AzureDev 活动专注于通过代码改变世界, ...

  7. Oracle 数据的导入和导出(SID service.msc)

    一:版本号说明: (1)(Oracle11  32位系统)Oracle - OraDb11g_home1: (2)成功安装后显演示样例如以下:第一个图是管理工具.创建连接.创建表:第二个是数据库创建工 ...

  8. 最简单也最难——如何获取到Android控件的高度

    问题 如何获取一个控件的长和高,相信很多朋友第一眼看见这个问题都会觉得很简单,直接在onCreate里面调用getWidth.getMeasuredWidth不就可以获得了吗,但是,事实上是并没有简单 ...

  9. 以libevent网络库为引:网络通信和多线程

    1. windows下编译及使用libevent  http://www.cnblogs.com/luxiaoxun/p/3603399.html 2.  <<libevent学习资料&g ...

  10. 闲扯 Javascript 01 实现选项卡

    javascript 实现选项卡 今天下午的两节课,在机房闲来没事 ,就学习了javascript 怎么获取HTML的标签,改变CSS样式,资料来源 智能社! <script> windo ...