我用Socket监听服务端口,客户端通过url = new URL("http://127.0.0.1:56/m.txt")跟服务端建立连接。我想知道我怎么样能得到客户端的这个完整的url呢?

解决方案 »

  1.   

    这个问题太难了你用ServerSocket侦听,得到URL的连接后生成一个Socket
    重要的是要通过这个socket和URL完成会话,模拟HTTP实现。
      

  2.   

    想要简单点该怎么做?关键是要能获得url的内容
      

  3.   

    模拟http协议,没有其他的办法你查查http协议步骤,也不是很难,我记得什么时候看过用socket模拟实现http,也不长,其实就是你先发送什么包,对方再返回一个包什么的用sniffer查看数据流,其实不大。google一下吧
      

  4.   

    看了一个http的例子。我用socket监听,只能得到客户端的IP和端口,但是http的请求内容却一点也得不到,这是为什么呢?
    server = new ServerSocket(56);
    System.out.println("Server start ...");
    socket = server.accept();
    BufferedReader reader = new BufferedReader(new InputStreamReader 
                                       (socket.getInputStream()));
    String str = reader.readLine();
    System.out.println("write : "+str);//啥也没有啊!
      

  5.   

    没见到你的http组包部分呀
    socket实现http我没做过。你最好仔细看看http整个协议的过程。
      

  6.   

    我这里只是接收,为什么要组包?客户端发送
    url = new URL("http://127.0.0.1:56/server/overview-tree.html");
    System.out.println("Client start ...");
    connect = (URLConnection)url.openConnection();
    connect.setDoOutput(true);
    connect.connect();     
    DataOutputStream outStream = new DataOutputStream(connect.getOutputStream()); 
    outStream.writeBytes("cdef");
    outStream.flush();
    以上该是封装成HTTP格式的吧?