论坛: 编程破解 标题: 谁能找到关于http_tunnel(http隧道)的技术细节的文章 复制本贴地址    
作者: wxngzybb [wxngzybb]    论坛用户   登录
请问大家有没有谁能找到关于http_tunnel(http隧道)的技术细节的文章,就是细节性较强,不是单讲大概原理的.谢谢了


[此贴被 286(unique) 在 04月28日13时47分 编辑过]

地主 发表时间: 05-04-21 16:26

回复: llk2005 [llk2005]   论坛用户   登录
你 看这个合不 合你 的口味

来源于:http://blog.csdn.net/netsniffer/archive/2004/10/14/135736.aspx
Applet用Http隧道技术和Servlet通讯 (源码) 作者:jdeveloper

Applet source


import java.io.*;
import java.applet.Applet;
import java.awt.*;

public class TestDataStreamApplet extends Applet
{
    String response;
    public  void  init(){   
     
      try{
        java.net.URL url = new java.net.URL(getDocumentBase(),"servlet/DataStreamEcho");       
        java.net.URLConnection con = url.openConnection();
        con.setUseCaches(true);
        con.setDoOutput(true);
        con.setDoInput(true);
        ByteArrayOutputStream byteout = new ByteArrayOutputStream();
        DataOutputStream out = new DataOutputStream(byteout);
        out.writeUTF("hello world!");
        out.flush();
        byte buf[] =  byteout.toByteArray();       
        con.setRequestProperty("Content-type","application/octest-stream");
        con.setRequestProperty("Content-length",""+buf.length);
        DataOutputStream dataout = new DataOutputStream(con.getOutputStream());
        dataout.write(buf);
        dataout.flush();
  dataout.close();

        DataInputStream in = new DataInputStream(con.getInputStream());
        response = in.readUTF();
        System.out.println("read from server :" + response);
        in.close(); 
      }
      catch(Exception e){
        e.printStackTrace();
      }
     
  }

  public void paint(Graphics g){
      g.drawString("read from server :" + response,10,20);
     
  }
}




Servlet source





import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class DataStreamEcho extends HttpServlet{
      public void service(HttpServletRequest req,HttpServletResponse resp)
          throws ServletException ,java.io.IOException
      {
          DataInputStream in = new DataInputStream(req.getInputStream());
          resp.setContentType("application/octest-stream");
          ByteArrayOutputStream byteout = new ByteArrayOutputStream();
          DataOutputStream out = new DataOutputStream(byteout);
          String response = in.readUTF();
          out.writeUTF(response);
          out.flush();
          byte buf[]= byteout.toByteArray();
          resp.setContentLength(buf.length);
          ServletOutputStream servletout = resp.getOutputStream();
          servletout.write(buf);
          servletout.close(); 
      }

}




B1层 发表时间: 05-04-28 11:42

回复: wxngzybb [wxngzybb]   论坛用户   登录
这段代码应该只是利用的现成http-tunnel技术的接口API编程,不过还是谢谢你

B2层 发表时间: 05-04-28 13:53

回复: shesh [shesh]   版主   登录
没那么复杂呢.

就一个connect ****

你查查代理服务器的协议就知道了.

B3层 发表时间: 05-04-30 19:00

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号