java--socket实现一个client像还有一个client发送信息
首先建立接收方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发送信息的更多相关文章
- 用Java socket (TCP通信模型)实现一个简单的web 服务器
package cn.magicdu.think.socket; import java.io.OutputStream; import java.io.PrintWriter; import jav ...
- JAVA Socket 实现HTTP与HTTPS客户端发送POST与GET方式请求
JAVA Socket 实现HTTP与HTTPS客户端发送POST与GET方式请求 哇,一看标题怎么这么长啊,其实意思很简单,哥讨厌用HTTP Client做POST与GET提交 觉得那个毕竟是别人写 ...
- Java Socket应用---通信是这样练成的
网络基础简介 Java 中网络相关 API 的应用 Java 中的 InetAddress 的应用 Test01.java package com.imooc; import java.n ...
- Java socket详解(转)
一:socket通信基本原理. 首先socket 通信是基于TCP/IP 网络层上的一种传送方式,我们通常把TCP和UDP称为传输层. 如上图,在七个层级关系中,我们将的socket属于传输层,其中U ...
- Java Socket 通信实例 - 转载
基于Tcp协议的简单Socket通信实例(JAVA) 好久没写博客了,前段时间忙于做项目,耽误了些时间,今天开始继续写起~ 今天来讲下关于Socket通信的简单应用,关于什么是Socket以及一些 ...
- java socket之传输实体类对象
一.TCP编程 TCP协议是面向连接的.可靠地.有序的,以字节流的方式发送数据.java实现TCP通信依靠2个类:客户端的Socket类和服务器端的ServerSocket类. 基于TCP通信 ...
- Java——socket
Server: import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public cla ...
- Java Socket实战之三:传输对象
转自:https://i.cnblogs.com/EditPosts.aspx?opt=1 前面两篇文章介绍了怎样建立Java Socket通信,这一篇说一下怎样使用Java Socket来传输对象. ...
- Java socket详解
参考 https://www.jianshu.com/p/cde27461c226 刚给大家讲解Java socket通信后,好多童鞋私信我,有好多地方不理解,看不明白.特抽时间整理一下,详细讲述Ja ...
- Java Socket编程
Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket.像大家熟悉的QQ.MSN都使用了Socket相关的技术. ...
随机推荐
- 「操作系统」: Conditional Move Instructions(trap)
Not all conditional expressions can be compiled using conditional moves. Most significantly, the abs ...
- C# 操作Excel (二)
根据翻阅LTP.Net知识库系列之四中Office操作功能: 一.记录常用如下 (1)“在自己的程序中宿主Office”的意思就是在我们自己开发的应用程序的窗体上,显示一个就像Office应用程序那样 ...
- java学习之url
package com.gh.URL; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import ...
- gdal库的三个使用心得
作者:朱金灿 来源:http://blog.csdn.net/clever101 最近使用gdal库比较多,就谈谈gdal库的一些使用心得. 第一个是GDALOpen的访问权限参数会影响图像的创建金字 ...
- ADO.NET 总结
一.简单介绍ADO.NET System.Data:DataTable,DataSet,DataRow,DataColumn,DataRelation,Constraint System.Data.C ...
- 面向对象程序设计-C++ Class & Object & Friend Function & Constructor & Destructor【第五次上课笔记】
大家可以下载后用Vim 或者 Sublime Text等文本编辑器查看 以下代码均已折叠,点击“+“即可打开 一开始老师用C语言大作业的例子,写了个 Student 的结构以及相关操作 #includ ...
- SSH整合,"sessionFactory " or "hibernateTemplate " is required异常
首先遇到的问题就是HibernateDaoSupport引起的,程序中所有的DAO都继承自HibernateDaoSupport,而HibernateDaoSupport需要注入sessionfact ...
- 转:CI引入外部js与css
其实不管是在用CI还是ZF都有同样一个问题,就是路径的问题.前期,我在用ZF做CMS时,我在.htaccess文件中设置了如遇到js,css,img等资源文件都不重定向.但今天在用CI时,却忘记了,搞 ...
- 雅虎UED--无障碍网页设计
转自:http://www.sharetk.com/html/ued/Interactive-Design/1394.html 随着web使用量的增加和人们网络意识的增强,一些特殊用户开始被我们所关注 ...
- linux定时调度器每秒运行一次
linux操作系统最小粒度的定时调度器仅仅能调到分钟的级别,工作中有时需在到秒的调度,所以须要自己编写脚本来实现 #!/bin/bash while [ true ]; do /bin/sleep 1 ...