一零壹0 2015-11-19 18:19 采纳率: 0%
浏览 4208

Java httpserver 多线程接收问题

我使用了java 自带的com.sun.net.httpserver,使用多线程接收消息,但是当我在一个线程中加入死循环,客户端第二个请求就接收不到,求大神指点
HttpServerProvider provider = HttpServerProvider.provider();
HttpServer httpserver =provider.createHttpServer(new InetSocketAddress(port), revCount);//监听端口9006,能同时接 受100个请求
httpserver.createContext(context, new HandlerProto());
// httpserver.setExecutor(null); //使用单线程
httpserver.setExecutor(Executors.newCachedThreadPool());
httpserver.start();

  1. public void handle(HttpExchange httpExchange) throws IOException {
  2. // TODO Auto-generated method stub
  3. String method = httpExchange.getRequestMethod();
  4. if(method.equalsIgnoreCase("GET")){
  5. System.out.println("===>"+Thread.currentThread().getId());
  6. System.out.println("===>"+httpExchange.getRequestURI());
  7. boolean ffff = true;
  8. while(ffff){
  9. }
  10. byte[] resout = "123".getBytes();
  11. try {
  12. httpExchange.sendResponseHeaders(200, resout.length); //设置响应头属性及响应信息的长度
  13. OutputStream out = httpExchange.getResponseBody(); //获得输出流
  14. out.write(resout);
  15. out.flush();
  16. out.close();
  17. httpExchange.close();
  18. } catch (IOException e) {
  19. // TODO Auto-generated catch block
  20. e.printStackTrace();
  21. }
  22. }
  23. }

展开全部

  • 写回答

1条回答 默认 最新

  • baibing321 2015-11-22 18:01
    关注

    JAVA程序,按行执行 。你写了一个无限循环,阻断了程序的运行

    评论
    编辑
    预览

    报告相同问题?

    手机看
    程序员都在用的中文IT技术交流社区

    程序员都在用的中文IT技术交流社区

    专业的中文 IT 技术社区,与千万技术人共成长

    专业的中文 IT 技术社区,与千万技术人共成长

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    客服 返回
    顶部