JAVA中socket到底是什么东西?为什么socket.getInputStream()能获取到?
还有和http/tcp/udp有什么关系以及什么区别?
也请把这三种协议解释下,小弟对协议方面一点都不懂,请各位帮忙.
多谢!

解决方案 »

  1.   

    协议者,规则也!http是应用层协议,超文本传输协议;tcp和udp是传输层协议,tcp是面向连接的,传输控制协议;udp是面向非连接的,用户数据报协议。
      

  2.   

    Sockect是java对计算机网络通讯的一个封装,主要用来实现网络间通信的。Socket主要为ServerSocket--用来开启服务端监听,用在服务器端的开发。Socket用于主动连接服务器端,属于客户端的内容。
    ServerSocket类例子
    int PORT = 8888; // 侦听端口
    ServerSocket serverSocket = new ServerSocket(PORT); // 创建ServerSocket 
    while (true) {
    Socket socket = serverSocket.accept(); //侦听客户端
    ServerThread st = new ServerThread(socket); // 处理链接的线程类 
    new Thread(st).start(); // 启动线程处理 
    }客户端的例子
    int PORT = 8888; // 侦听端口 
    socket = new Socket(“127.0.0.1”, 8888); //与服务器建立连接
    BufferedReader netIn = new BufferedReader(new InputStreamReader(socket.getInputStream())); 
    PrintWriter netOut = new PrintWriter(socket.getOutputStream());
      

  3.   


    这个讲的已经很明白了对于HTTP,TCP和UDP,如果还不明白可以看一下,计算机网络四版或5版
      

  4.   

    好的,多谢大家,小荷初现说sockect是java对计算机网络通讯的一个封装,到底是建立在哪个协议上的呢?或者说socket底层是对哪个协议的封装呢?
      

  5.   

    java的Socket包是对TCP协议的进一步抽象,向程序员屏蔽了TCP通信的细节,表现在,在使用Socket类的方法机那里信道的时候,Socket类屏蔽了通过三次握手建立信道的全部流程,而直接向程序员返回信道的句柄,向程序员屏蔽了服务器与客户端之间的物理硬件指标和底层连接方式,所以程序员在使用Socket类时刻简单地调用方法来传输数据,而不必关心数据流的传输和接收方式。