ServerSocket可以监听由URLConnection建立连接的客户端吗?要是能URL url = new URL("地址怎么写?")。 Socket和URLConnection之间有什么区别?

解决方案 »

  1.   

    URL是以路径来访问的,URLConnection提供的服务是高层协议,如HTTP,FTP
    ServerSocket是socket接口,提供的是Tcp服务
    两个用处不同
    ServerSocket当然可以监听URLConnection建立连接的客户端,不过要自己通过tcp实现http协议
    URL这样写:"http://www.sina.com.cn"
      

  2.   

    不懂。我的Socket服务端如下:
    public class ServerURLSocket{
    private Socket socket;
    private ServerSocket server ;
    public ServerURLSocket(){
    try {
    server = new ServerSocket(56);
    System.out.println("Server start ...");
    socket = server.accept();
    parseInput();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    private void parseInput(){
    try {

    BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    String str = reader.readLine();
    System.out.println("write : "+str);
    reader.close();
    socket.close();
    //DataInputStream in = new DataInputStream(socket.getInputStream());
    //System.out.println("write : "+in.readUTF());
    } catch (IOException e) {
    e.printStackTrace();
    System.out.println("异常 1 "+e);

    }

    public static void main(String[] arg){
    new ServerURLSocket();
    }
    }
    **********为什么收不到URLConnection客户端发送的请求?
    =========================================
    客户端:
    public class ClientURLSocket {
    private URL url ;
    private URLConnection connect;
    public ClientURLSocket(){
    try{
        url = new URL("http://127.0.0.1:56/server/overview-tree.html");
        System.out.println("Client start ...");
        connect = (URLConnection)url.openConnection();
        //connect.setRequestProperty("a","b");
        connect.setDoOutput(true);
        connect.connect();     
        DataOutputStream outStream = new DataOutputStream(connect.getOutputStream()); 
        System.out.println(connect.getURL().getPath());
        outStream.writeBytes("cdef");
        outStream.flush();
        System.out.println("client:"+outStream.size());
        Thread.sleep(5000L);
        outStream.close(); 
    }catch(Exception e){
    System.out.println("URL 异常 : "+e);
    }
    }
    public static void main(String [] s){
    new ClientURLSocket();
    }
    }
      

  3.   

    outStream.writeBytes("cdef");//服务端收不到这个