`
zhaoshijie
  • 浏览: 2261606 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

网服务器端发送消息并接受返回的消息(输出输入流应用)

阅读更多
用输入输出流实现往服务器端发送消息并接收返回的消息。



客户端 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中无用的东西去掉,只写需要传回的信息

分享到:
评论

相关推荐

    Java基于Socket文件传输示例:服务器端和客户端

    2. **创建输入/输出流**:与服务器端类似,客户端也需要`DataInputStream`和`DataOutputStream`来读写数据。 3. **接收文件名和长度**:从服务器接收文件名和长度,这通常涉及到`dis.readUTF()`和`dis.readLong()` ...

    客户端和服务器端的简单通信

    - 客户端可以使用输出流向服务器发送消息,然后通过输入流读取服务器的响应。 - 完成通信后,客户端也需要关闭Socket和流。 3. **Java Socket通信示例**: - 服务器端代码通常包含一个无限循环,不断接受新的...

    Java-web客户端和服务器端交互的原理.doc

    客户端发送请求报文是指客户端向服务器端发送请求命令,服务器端接受请求命令后,进行处理和返回响应。服务器端处理请求和返回响应是指服务器端接受请求命令后,进行处理和返回响应。关闭连接是指客户端和服务器端...

    Socket输入输出服务器程序

    1. **ServerSocket类**:服务器端创建Socket连接的第一步是实例化ServerSocket对象,并指定一个端口号。例如,`new ServerSocket(23457)`。这个操作会打开指定的端口,开始监听连接请求。 2. **accept()方法**:...

    服务器端返回json数据

    服务器端返回JSON数据的过程通常涉及以下步骤: 1. **数据准备**:在服务器端,如Java EE应用中,开发者会使用Java对象来存储业务数据。这些对象可能包括自定义的实体类或者Map结构。然后,通过JSON库(如Gson、...

    Socket发送并接收服务器返回的数据

    服务器端通常会使用ServerSocket监听特定端口,接收到客户端请求后创建Socket连接,并通过Socket的InputStream读取客户端发送的数据,然后通过OutputStream回传响应。服务器端的实现不在本文讨论范围内,但它是整个...

    同步socket发送消息实例

    这个程序可能包含一个客户端和一个服务器端,客户端连续发送多条消息,而服务器端则接收并处理这些消息。为了运行这个程序,你需要确保客户端和服务器端都在正确配置的网络环境中,且服务器端已经启动并监听指定的...

    Java网络聊天服务器端

    - `getInputStream()` 返回Socket的输入流,用于读取客户端发送的数据。 - `BufferedReader` 是字符缓冲流,提高了读取效率。 - **输出流**:用于向客户端发送数据。 - `PrintWriter out = new PrintWriter(new ...

    SOCKET 网络编程 计算机网络 作业 客户端 服务器端 client svever

    在计算机网络领域,Socket编程是一种基础且至关重要的技术,它为客户端和服务器端的应用程序提供了进行数据通信的接口。Socket在网络层面上实现了进程间的通信,是互联网应用的基础,广泛应用于各种服务,如HTTP、...

    客户端与服务器端进行简单的会话

    通常,关闭顺序是从输出流开始,然后是输入流,最后是Socket本身。 标签"client"和"server"表明这两个Java文件分别实现了客户端和服务器的功能。在这个简单的会话中,可能涉及的基础知识点有网络编程原理、TCP/IP...

    Android开发,Socket Client端和Socket Server端数据发送和接收

    - **InputStream**:Server端通过Socket对象的`getInputStream()`方法获取输入流,用于读取客户端发送的数据。 - **BufferedReader**:通常我们会用`BufferedReader`配合`InputStreamReader`来读取输入流中的字符...

    android服务器端demo

    在Android服务器端,我们可能看到使用`BufferedReader`和`PrintWriter`对输入流和输出流进行封装,以进行文本格式的数据交互。 4. **异常处理**:网络通信中,异常处理是必不可少的部分。需要捕获如`IOException`等...

    Socket服务器端实例(网络聊天室)

    4. **接收并广播消息**:服务器端持续循环接收客户端发送的消息,然后将消息广播给其他所有客户端。为了实现多客户端并发,可能需要使用线程或者异步处理来处理每个客户端的连接。 ```java String message; while...

    socket聊天软件服务器端

    `Socket`提供了输入流和输出流接口,如`InputStream`和`OutputStream`,可以使用这些流进行字节级别的读写操作。通常,我们会使用包装类,如`BufferedReader`和`PrintWriter`,以更方便地处理文本数据。 4. **多...

    java聊天室 (内含服务器+客户端)赞! Socket SerSocket

    3. 通过输出流向服务器发送消息,通过输入流接收服务器返回的消息。 4. 完成通信后,关闭`Socket`连接。 在Java聊天室中,为了实现多用户同时在线聊天,服务器需要管理一个客户端列表,每当有新的客户端连接时,将...

    Socket客户端和服务器端Demo

    4. 数据传输:服务器端通过新建立的Socket对象的`getInputStream()`和`getOutputStream()`方法获取输入流和输出流,从而读取客户端发送的数据和向客户端发送数据。 三、客户端编程 5. Socket类:客户端使用`java...

    用Java编写客户机_服务器端应用程序.zip

    在IT领域,Java是一种广泛应用的编程语言,尤其在构建客户机-服务器端应用程序方面表现出色。本资源"用Java编写客户机_服务器端应用程序.zip"包含了一份关于如何使用Java进行此类开发的详细指南,主要文件为"用Java...

    Netty4编写服务器客户端,自定义编解码,发送自定义消息

    运行服务器端的启动类,然后运行客户端的启动类,客户端将会发送一个自定义的消息到服务器,服务器接收到消息后,通过自定义的编解码器解析,然后返回相同格式的消息给客户端。客户端接收到消息后,同样通过自定义的...

    java多人聊天客户端和服务器端

    客户端将用户输入的文本转化为字节流并通过Socket发送,服务器端接收到字节流后解析成文本,再广播给其他客户端。 6. **Eclipse集成开发环境**: 提供的`ClientDemo.java`表明项目是在Eclipse IDE中开发的,...

    android基于WiFi的socket客户端和服务器端

    通过Socket的输出流写入数据,输入流读取服务器返回的数据。 6. **WiFi通信**:在Android设备上,Socket通信通常依赖于WiFi网络,因此需要确保设备的WiFi功能开启,并且能够连接到互联网。在进行Socket编程时,需要...

Global site tag (gtag.js) - Google Analytics