使用java实现http代理服务器的问题

milo-higgs 2009-10-14 09:33:40
我用java的ServerSocket实现了一个代理服务器,对每个请求,新建一个线程处理。
如下代码是通过我自己写的代理访问http://www.javaeye.com/topic/154258:
HttpClient httpClient = new HttpClient();
// 设置代理服务器的ip地址和端口
httpClient.getHostConfiguration().setProxy("127.0.0.1", 8888);
// 使用抢先认证
httpClient.getParams().setAuthenticationPreemptive(true);
GetMethod method = new GetMethod("http://www.javaeye.com/topic/154258");
// method.addRequestHeader("Content-type", "text/xml; charset=utf-8");
try {
int statusCode = httpClient.executeMethod(method);
if (statusCode != HttpStatus.SC_OK) {
System.err.println("Method failed: " + method.getStatusLine());
}
String resultXml = method.getResponseBodyAsString();
System.out.println(resultXml);
} catch (HttpException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
本来设想的,在代理服务器端,只需要一个线程来处理就可以了,我认为只会有一个socket,但是服务器端却启动了四个线程,处理了四个socket,这是怎么回事呢?

请教大家。
...全文
260 8 打赏 收藏 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
swandragon 2009-10-15
  • 打赏
  • 举报
回复
代码贴详细点
imasmallbird 2009-10-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zhmilo 的回复:]
引用 4 楼 imasmallbird 的回复:
你这个是用Apache的HttpClient组件写的吧
我没明白,你是怎么看出来服务器端却启动了四个线程,处理了四个socket


打印的日志
[/Quote]

把你的日志贴出来~~~
milo-higgs 2009-10-15
  • 打赏
  • 举报
回复
多谢各位的关注,我已解决,稍后总结一下,发出来。
milo-higgs 2009-10-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 imasmallbird 的回复:]
你这个是用Apache的HttpClient组件写的吧
我没明白,你是怎么看出来服务器端却启动了四个线程,处理了四个socket
[/Quote]

打印的日志
wenbinglove 2009-10-15
  • 打赏
  • 举报
回复
你说服务器端却启动了四个线程,处理了四个socket

我 没看明白

解释 清楚点 代码 贴 多点咯


imasmallbird 2009-10-15
  • 打赏
  • 举报
回复
你这个是用Apache的HttpClient组件写的吧
我没明白,你是怎么看出来服务器端却启动了四个线程,处理了四个socket
hytdsky 2009-10-15
  • 打赏
  • 举报
回复
关注来看看 对java网络不了解
HelloAldis 2009-10-14
  • 打赏
  • 举报
回复
创建进程的代码贴详细点 最好贴在 javacode 代码框里 这样看的多好
贴详细点好Debug
等贴好了我就开动

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧