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

往服务器端发送消息并接收返回的消息--输入输出流应用

    博客分类:
  • Java
阅读更多

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

 

客户端 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();

  d.close();  // ①   这里必须放在con.getInputStream()这句之后,否则会报socket错

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

分享到:
评论

相关推荐

    计算机网络课程设计---端口扫描工具设计.docx

    ·0-------不允许继续接收数据 ·1-------不允许继续发送数据 ·2-------不允许继续发送和接收数据,均为允许则调用close () shutdown在操作成功时返回0,在出现错误时返回-1并置相应errno。 常用端口扫描技术 TCP ...

    java源码包---java 源码 大量 实例

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    vc++ 开发实例源码包

    内含远程控制、进程管理、文件操作、视频控制、注册表操作、客户端服务器端。 redui_src_v0.9.130(DirectUI 3D) DirectUI 3D界面库。 sdk(界面库) RINGSDK包含界面库和图象库。 绘MFC基本控件 ) 如题。 ...

    java-servlet-api.doc

    这个请求被运行在Web服务器上的Servlet引擎处理,并返回响应到Servlet。Servlet通过HTTP将这个响应转发到客户端。 在功能上,Servlet与CGI、NSAPI有点类似,但是,与他们不同的是:Servlet具有平台无关性。 Java...

    java源码包3

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    JAVA上百实例源码以及开源项目源代码

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    JAVA上百实例源码以及开源项目

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java数据压缩与传输实例 1个目标文件 摘要:Java源码,文件操作,数据压缩,文件传输 Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java数据压缩与传输实例 1个目标文件 摘要:Java源码,文件操作,数据压缩,文件传输 Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、...

    java源码包2

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    java源码包4

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    基于Java的视频会议系统(软件程序+WORD论文文档).zip

    GetOutputStream方法得到一个输出流,客户端Socket对象上的getOutputStream方法返回的输出流就是将要发送到服务器端的数据流,(其实是一个缓冲区,暂时存储将要发送过去的数据)。 多播通信是一类特殊的IP地址(D类...

    vc++ 应用源码包_1

    内含远程控制、进程管理、文件操作、视频控制、注册表操作、客户端服务器端。 redui_src_v0.9.130(DirectUI 3D) DirectUI 3D界面库。 sdk(界面库) RINGSDK包含界面库和图象库。 绘MFC基本控件 PlayerDrectShow...

    java编程基础,应用与实例

    21.4.4 剪子-包袱-锤游戏的服务器端 403 21.4.5 剪子-包袱-锤游戏的客户端 405 21.5 客户机相互通信 407 21.5.1 聊天程序服务器端 408 21.5.2 聊天程序客户端 411 21.5.3 操作URL 412 21.6 Applet ...

    JAVA聊天室实验报告.doc

    一旦连接请求成功,客户 端将信息及请求通过本方socket的输出流发送给服务器端相应的socket,服务端则通过 服务器端Socket的输入流接受客户端传输过来的信息及请求,分析是何请求,然后根据 请求类型,进行相应的...

    vc++ 应用源码包_2

    内含远程控制、进程管理、文件操作、视频控制、注册表操作、客户端服务器端。 redui_src_v0.9.130(DirectUI 3D) DirectUI 3D界面库。 sdk(界面库) RINGSDK包含界面库和图象库。 绘MFC基本控件 PlayerDrectShow...

    vc++ 应用源码包_6

    内含远程控制、进程管理、文件操作、视频控制、注册表操作、客户端服务器端。 redui_src_v0.9.130(DirectUI 3D) DirectUI 3D界面库。 sdk(界面库) RINGSDK包含界面库和图象库。 绘MFC基本控件 PlayerDrectShow...

    vc++ 应用源码包_5

    内含远程控制、进程管理、文件操作、视频控制、注册表操作、客户端服务器端。 redui_src_v0.9.130(DirectUI 3D) DirectUI 3D界面库。 sdk(界面库) RINGSDK包含界面库和图象库。 绘MFC基本控件 PlayerDrectShow...

    vc++ 应用源码包_3

    内含远程控制、进程管理、文件操作、视频控制、注册表操作、客户端服务器端。 redui_src_v0.9.130(DirectUI 3D) DirectUI 3D界面库。 sdk(界面库) RINGSDK包含界面库和图象库。 绘MFC基本控件 PlayerDrectShow...

Global site tag (gtag.js) - Google Analytics