- 浏览: 2261606 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (423)
- FileNet相关 (3)
- 应用服务器相关 (22)
- Java综合 (77)
- 持久层 (24)
- struts (11)
- webservice (8)
- 虚拟机 (2)
- 光盘刻录 (0)
- AD及AD集群 (1)
- JS (33)
- F5 (0)
- loadrunner8.1 (0)
- Java 反编译工具 (2)
- DataBase (62)
- ant (1)
- 操作系统 (29)
- 我的任务 (3)
- 平台架构 (16)
- 业务规则引擎 (2)
- 模板 (1)
- EJB (5)
- spring (24)
- CMMI (1)
- 项目管理 (20)
- LDAP (13)
- JMS (10)
- JSP (19)
- JBPM (2)
- web MVC框架设计思想 (2)
- 第三方支付平台 (2)
- BUG管理工具 (1)
- 垃圾站 (2)
- php (1)
- swing (1)
- 书籍 (1)
- QQ qq (2)
- 移动互联网 (26)
- 爱听的歌曲 (0)
- hadoop (4)
- 数据库 (9)
- 设计模式 (1)
- 面试经验只谈 (1)
- 大数据 (9)
- sp (1)
- 缓存数据库 (8)
- storm (2)
- taobao (2)
- 分布式,高并发,大型互联网,负载均衡 (6)
- Apache Ignite (0)
- Docker & K8S (0)
最新评论
-
wangyudong:
新版本 Wisdom RESTClienthttps://gi ...
spring rest mvc使用RestTemplate调用 -
wangyudong:
很多API doc生成工具生成API文档需要引入第三方依赖,重 ...
spring rest mvc使用RestTemplate调用 -
zhaoshijie:
cfying 写道大侠,还是加载了两次,怎么解决啊?求。QQ: ...
spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件) -
xinglianxlxl:
对我有用,非常感谢
spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件) -
k_caesar:
多谢,学习了
利用maven的resources、filter和profile实现不同环境使用不同配置文件
用输入输出流实现往服务器端发送消息并接收返回的消息。
客户端 StreamTest.java:
public class StreamTest implements Controller{
public ModelAndView handleRequest(HttpServletRequest req,
HttpServletResponse res) throws Exception {
URL url = new URL("http://localhost:8088/Test/streamtestserver.do");
HttpURLConnection con = (HttpURLConnection)url.openConnection();
con.setRequestMethod("POST"); // 设置请求方式
con.setRequestProperty("Content-Type", "application/stream"); // 设置请求类型
// con.setRequestProperty("Content-Length",Integer.toString(data.length()));
con.setDoOutput(true); //默认是false,将 doOutput 标志设置为 true,指示应用程序要将数据写入 URL 连接。
con.setDoInput(true); //默认是true,将 doInput 标志设置为 true,指示应用程序要从 URL 连接读取数据。
con.setUseCaches(false);//如果为 true,则只要有条件就允许协议使用缓存。如果为 false,则该协议始终必须获得此对象的新副本。
con.setInstanceFollowRedirects(true);
// con.connect();
System.out.println("StreamTest...................");
OutputStream o = con.getOutputStream();
DataOutputStream d = new DataOutputStream(o);
d.write("zy".getBytes());
// d.flush();
// d.close();
// con.disconnect();
BufferedReader bf = new BufferedReader(new InputStreamReader(con.getInputStream()));
StringBuffer sf = new StringBuffer();
String str;
while((str=bf.readLine())!=null)
{
sf.append(str);
}
bf.close();
con.disconnect();
System.out.println("StreamTestStr="+sf.toString());
return null;
}
}
服务器端 StreamTestServer.java
public class StreamTestServer implements Controller{
public ModelAndView handleRequest(HttpServletRequest req,
HttpServletResponse res) throws Exception {
BufferedReader bf = new BufferedReader(req.getReader());
StringBuffer sf = new StringBuffer();
String str;
while((str=bf.readLine())!=null)
{
sf.append(str);
}
bf.close();
System.out.println("StreamTestServer="+sf.toString());
if(sf.toString().equals("zy")){
res.getWriter().write("123456"); // (1)
}
return null;
}
}
输出结果为
StreamTest...................
StreamTestServer=zy
StreamTestStr=123456
Server端的(1)也可以改成 return new ModelAndView("test.jsp");
jsp中是要输出的内容,不过因为客户端读到的是源文件,所以要把jsp中无用的东西去掉,只写需要传回的信息
客户端 StreamTest.java:
public class StreamTest implements Controller{
public ModelAndView handleRequest(HttpServletRequest req,
HttpServletResponse res) throws Exception {
URL url = new URL("http://localhost:8088/Test/streamtestserver.do");
HttpURLConnection con = (HttpURLConnection)url.openConnection();
con.setRequestMethod("POST"); // 设置请求方式
con.setRequestProperty("Content-Type", "application/stream"); // 设置请求类型
// con.setRequestProperty("Content-Length",Integer.toString(data.length()));
con.setDoOutput(true); //默认是false,将 doOutput 标志设置为 true,指示应用程序要将数据写入 URL 连接。
con.setDoInput(true); //默认是true,将 doInput 标志设置为 true,指示应用程序要从 URL 连接读取数据。
con.setUseCaches(false);//如果为 true,则只要有条件就允许协议使用缓存。如果为 false,则该协议始终必须获得此对象的新副本。
con.setInstanceFollowRedirects(true);
// con.connect();
System.out.println("StreamTest...................");
OutputStream o = con.getOutputStream();
DataOutputStream d = new DataOutputStream(o);
d.write("zy".getBytes());
// d.flush();
// d.close();
// con.disconnect();
BufferedReader bf = new BufferedReader(new InputStreamReader(con.getInputStream()));
StringBuffer sf = new StringBuffer();
String str;
while((str=bf.readLine())!=null)
{
sf.append(str);
}
bf.close();
con.disconnect();
System.out.println("StreamTestStr="+sf.toString());
return null;
}
}
服务器端 StreamTestServer.java
public class StreamTestServer implements Controller{
public ModelAndView handleRequest(HttpServletRequest req,
HttpServletResponse res) throws Exception {
BufferedReader bf = new BufferedReader(req.getReader());
StringBuffer sf = new StringBuffer();
String str;
while((str=bf.readLine())!=null)
{
sf.append(str);
}
bf.close();
System.out.println("StreamTestServer="+sf.toString());
if(sf.toString().equals("zy")){
res.getWriter().write("123456"); // (1)
}
return null;
}
}
输出结果为
StreamTest...................
StreamTestServer=zy
StreamTestStr=123456
Server端的(1)也可以改成 return new ModelAndView("test.jsp");
jsp中是要输出的内容,不过因为客户端读到的是源文件,所以要把jsp中无用的东西去掉,只写需要传回的信息
发表评论
-
各大巨头电商提供的IP库API接口-新浪、搜狐、阿里...
2015-04-22 13:18 15909关键字:各大巨头电商提供的IP库API接口-新浪、搜狐、阿里. ... -
用Java来获取访问者真实的IP地址-超准确
2015-04-22 12:55 6257关键字:用Java来获取访问者真实的IP地址-超准确 下面分享 ... -
Shiro集成OAuth2
2015-04-21 10:31 12444关键字:Shiro集成OAuth2 参考:http://jin ... -
淘宝网架构分享总结 - 架构,分布式,淘宝,虚拟化,水平伸缩
2015-04-19 00:25 7635推荐综合架构交流群:JAVA开发高级群 点击入群!!! 关键 ... -
Zookeeper 和 SASL
2015-04-16 09:29 13636关键字:Zookeeper 和 SASL 介绍 这是一个描述Z ... -
非对称加密(RSA)加密解密实现通信JAVA端工具类(教程)
2015-04-15 17:27 1184关键字:非对称加密(RSA)加密解密实现通信JAVA端工具类( ... -
对称加密(AES)加密实现工具类(教程)
2015-04-15 17:11 2146关键字:对称加密(AES)加密实现工具类(教程) Java加 ... -
Curator-Framework开源Zookeeper快速开发框架介绍
2015-04-14 18:41 703关键字:Curator-Framework开源Zookeepe ... -
IM消息推送之Openfire
2015-04-13 13:40 2213关键字:IM消息推送之Openfire Openfire 采用 ... -
Nio框架之Mina的demo
2015-04-12 13:38 644关键字:Nio框架之Mina的demo 官网:http://m ... -
AMQP中文版协议规范
2015-01-23 17:12 2989关键字:AMQP中文版协议规范 AMQP中文版协议规范:ht ... -
数据库连接池选型
2014-12-04 18:32 1171关键字:数据库连接池选型 proxool(与spring不太 ... -
spring中的数据源配置信息加密方案
2014-10-22 10:36 1076关键字:spring中的数据源配置信息加密方案 附件是完整的 ... -
OAuth2.0的Java实现 Apache Amber
2014-10-09 23:20 794关键字:OAuth2.0的Java实现 Apache Ambe ... -
企业信息管理系统基础框架jeesite
2014-05-06 22:21 2585jeesite项目地址(使用说明,):http://jeesi ... -
java中文分词组件-word分词
2014-05-06 21:33 21987关键字:java中文分词组 ... -
java制作可执行文件EXE文件
2014-05-05 18:58 1603关键字:java制作可执行文件EXE文件 参考:http: ... -
Quartz任务调度器详解
2014-04-25 22:46 19001关键字: 参考文章:ht ... -
各种hash算法-hashcodeUtil
2014-04-24 15:36 4245关键字:各种hash算法-hashcodeUtil -
性能监控工具类(StopWatchUtil)
2014-03-21 15:12 5747关键字:性能监控工具类(StopWatchUtil) 附 ...
相关推荐
2. **创建输入/输出流**:与服务器端类似,客户端也需要`DataInputStream`和`DataOutputStream`来读写数据。 3. **接收文件名和长度**:从服务器接收文件名和长度,这通常涉及到`dis.readUTF()`和`dis.readLong()` ...
- 客户端可以使用输出流向服务器发送消息,然后通过输入流读取服务器的响应。 - 完成通信后,客户端也需要关闭Socket和流。 3. **Java Socket通信示例**: - 服务器端代码通常包含一个无限循环,不断接受新的...
客户端发送请求报文是指客户端向服务器端发送请求命令,服务器端接受请求命令后,进行处理和返回响应。服务器端处理请求和返回响应是指服务器端接受请求命令后,进行处理和返回响应。关闭连接是指客户端和服务器端...
1. **ServerSocket类**:服务器端创建Socket连接的第一步是实例化ServerSocket对象,并指定一个端口号。例如,`new ServerSocket(23457)`。这个操作会打开指定的端口,开始监听连接请求。 2. **accept()方法**:...
服务器端返回JSON数据的过程通常涉及以下步骤: 1. **数据准备**:在服务器端,如Java EE应用中,开发者会使用Java对象来存储业务数据。这些对象可能包括自定义的实体类或者Map结构。然后,通过JSON库(如Gson、...
服务器端通常会使用ServerSocket监听特定端口,接收到客户端请求后创建Socket连接,并通过Socket的InputStream读取客户端发送的数据,然后通过OutputStream回传响应。服务器端的实现不在本文讨论范围内,但它是整个...
这个程序可能包含一个客户端和一个服务器端,客户端连续发送多条消息,而服务器端则接收并处理这些消息。为了运行这个程序,你需要确保客户端和服务器端都在正确配置的网络环境中,且服务器端已经启动并监听指定的...
- `getInputStream()` 返回Socket的输入流,用于读取客户端发送的数据。 - `BufferedReader` 是字符缓冲流,提高了读取效率。 - **输出流**:用于向客户端发送数据。 - `PrintWriter out = new PrintWriter(new ...
在计算机网络领域,Socket编程是一种基础且至关重要的技术,它为客户端和服务器端的应用程序提供了进行数据通信的接口。Socket在网络层面上实现了进程间的通信,是互联网应用的基础,广泛应用于各种服务,如HTTP、...
通常,关闭顺序是从输出流开始,然后是输入流,最后是Socket本身。 标签"client"和"server"表明这两个Java文件分别实现了客户端和服务器的功能。在这个简单的会话中,可能涉及的基础知识点有网络编程原理、TCP/IP...
- **InputStream**:Server端通过Socket对象的`getInputStream()`方法获取输入流,用于读取客户端发送的数据。 - **BufferedReader**:通常我们会用`BufferedReader`配合`InputStreamReader`来读取输入流中的字符...
在Android服务器端,我们可能看到使用`BufferedReader`和`PrintWriter`对输入流和输出流进行封装,以进行文本格式的数据交互。 4. **异常处理**:网络通信中,异常处理是必不可少的部分。需要捕获如`IOException`等...
4. **接收并广播消息**:服务器端持续循环接收客户端发送的消息,然后将消息广播给其他所有客户端。为了实现多客户端并发,可能需要使用线程或者异步处理来处理每个客户端的连接。 ```java String message; while...
`Socket`提供了输入流和输出流接口,如`InputStream`和`OutputStream`,可以使用这些流进行字节级别的读写操作。通常,我们会使用包装类,如`BufferedReader`和`PrintWriter`,以更方便地处理文本数据。 4. **多...
3. 通过输出流向服务器发送消息,通过输入流接收服务器返回的消息。 4. 完成通信后,关闭`Socket`连接。 在Java聊天室中,为了实现多用户同时在线聊天,服务器需要管理一个客户端列表,每当有新的客户端连接时,将...
4. 数据传输:服务器端通过新建立的Socket对象的`getInputStream()`和`getOutputStream()`方法获取输入流和输出流,从而读取客户端发送的数据和向客户端发送数据。 三、客户端编程 5. Socket类:客户端使用`java...
在IT领域,Java是一种广泛应用的编程语言,尤其在构建客户机-服务器端应用程序方面表现出色。本资源"用Java编写客户机_服务器端应用程序.zip"包含了一份关于如何使用Java进行此类开发的详细指南,主要文件为"用Java...
运行服务器端的启动类,然后运行客户端的启动类,客户端将会发送一个自定义的消息到服务器,服务器接收到消息后,通过自定义的编解码器解析,然后返回相同格式的消息给客户端。客户端接收到消息后,同样通过自定义的...
客户端将用户输入的文本转化为字节流并通过Socket发送,服务器端接收到字节流后解析成文本,再广播给其他客户端。 6. **Eclipse集成开发环境**: 提供的`ClientDemo.java`表明项目是在Eclipse IDE中开发的,...
通过Socket的输出流写入数据,输入流读取服务器返回的数据。 6. **WiFi通信**:在Android设备上,Socket通信通常依赖于WiFi网络,因此需要确保设备的WiFi功能开启,并且能够连接到互联网。在进行Socket编程时,需要...