java开发一个http的代理服务器

展开全部说实话,你的问题很那个。。不过应该也能实现。现在问题主要是由于b不能访问c,所以c只能使用TimerTask定时去访问b。b有2个listener,一个负责侦听来自a的请求,一个负责侦听来自b的。b中应该会使用到多线程。下面定义a的Request为x,c的Request为y由于b会有多个来自a转发的请求,可能会有x1\x2\x3等很多并发的请求,所以b在初始化的时候就需要建立一个等待池.等待池应该是单例且线程同步的,x一来就new object(request,response),然后放入list。c的定时器一到,就访问b开放给c的listener,request y。y首先遍历等待池,取出x的request,然后用取出x的response的返回给a。直到等待池为空为止,然后y response给c。不过要注意的是1)你会发现,由于c给b的数据应该是放到request y里面作为参数来传的。2)a的请求如果需要c不同数据接口的数据,那c-->b的request y里就应该包含所有的数据,然后在遍历等待池的时候根据a-->b的request x的id(可以使用sessionid)来区分取哪个。3)最差的情况,1,a源源不断的发出x请求,c的request遍历就死循环。 2,如果c的定时时间太短,y1还没完,y2就来了。3,a源源不断的发出x请求,但是某一请求Xn就无法抢到资源,Xn就挂掉。这里面很多处理你还要多加控制。这个想法没实验过,其实如果b可以访问c,其实什么问题都没有了 最后问一句,谁给你这样的需求的?打他展开全部这个还是有瓶颈的展开全部你的问题是什么???展开全部如果B不能访问C,这个似乎做不到