http://tanmaykm.tripod.com/work/javawork.htmlProProxy 1.70

解决方案 »

  1.   

    基本原理:用一个serversocket收,并传给一个socket发出去,取返回值再通过serversocket再返回给client。建议你学习一下ServerSocket/Socket两个类,以及网络协议方面的知识。
    有两本关于java网络编程的书可以参考,orelly和wrox的
      

  2.   

    上面这位仁兄说的我都知道,下面举例详细说明我的问题所在:
    假设目前有机器A,在浏览器中设置代理为我的机器B的地址
    当然机器B(也就是我的机器)中有一个代理,目前我的问题如下:
    一:我如何知道B机器的IP地址
    二:我如何知道B机器请求的URL
    三:skyyoung(路人甲)给出的网址小弟访问不了啊
      

  3.   

    你说的两个问题我不太清楚是什么意思?A机器上的IE中输入一个地址,比如http://www.sina.com,这个请求会被发送到你设置的proxy中,也就是B机器,然后你的B机器听到这个请求,应该取出请求内容(也就是我说的让你看一下协议的资料),然后转发到真正的www.sina.com这个机器上,得到response后,再同样传给A机器。
      

  4.   

    如果你对网络协议不是太熟悉,这有个东西不错:http://www.innovation.ch/java/HTTPClient/
      

  5.   

    给我个mail,我寄一些代码给你吧。
      

  6.   

    多谢,非常感谢,[email protected]
      

  7.   

    sharetop(燕赤霞) :是啊,关键是A机器向http://www.sina.com发出请求以后我,如何知道A向http://www.sina.com发出请求呢?我的代理如何监听到,通过在浏览器中设置代理同直接在浏览器中输入我的B机器的代理的URL一样吗?
      

  8.   

    不用了,你直接访问 http://www.sharetop.com 例子代码提供下载。
      

  9.   

    可能我上面表述的不清楚,我在公司里做的不是Java,因此目前正在自学,下面再具体说一下我的想法:
    首先有A,B两台机器,其中A机器不能够直接连到Internet,想通过局域网之后再通过机器B的代理连接到Internet.
    目前我的想法如下:
    首先,在B机器建立一个代理,时刻监听某个端口,如果A向某个站点(如www.sina.com.cn)发出请求,则代理首先同A机器建立一个连接通道,之后代理向www.sina.com.cn发出请求,并且将www.sina.com.cn响应的数据流通过与A机器的连接通道发送给A.实际上就是我与A和www.sina.com.cn分别建立连接。
    但是目前的问题如下:
    代理如何知道A请求的站点是www.sina.com.cn.
      

  10.   

    我觉得“www.sina.com.cn”可能是从B与A建立的通道发送过来的,我知道一些关于Http协议的内容,格式如下:
    get /asdf.asdf http/1.1
    其实我觉得是A机器直接向B机器发出请求,我从与A的连接中能够读到什么数据呢?
    是向上面所描述的类似的协议字符串吗?
      

  11.   

    为什么我的Java程序找不到ArrayList,真是奇怪,难道新版本将ArrayList删除了吗?