Java备忘录

网络

  • Socket是对客户端进行网络通信的封装;ServerSocket是对服务端网络通信的封装。

  • ServerSocketaccept()方法会阻塞,是调用了native方法。如果是在mac下,本质是调用了java.net.PlainSocketImpl类的native方法native void socketAccept(SocketImpl s),查看openjdk1.7的源码,/solaris/native/java/net/PlainSocketImpl.c中的Java_java_net_PlainSocketImpl_socketAccept方法中,有for (;;)循环,会一直循环直到连接上、超时或异常。

  • Socketconnect方法也是调用了native的方法。

  • socket.getInputStream()会分别返回SocketInputStream类,继承FileInputStream。它的read相关的方法均会调用native的socketRead0方法。

  • socket.getOutputStream()会分别返回SocketOutputStream类,继承FileOutputStream。它的write相关的方法均会调用native的socketWrite0方法。

你可能感兴趣的:(Java备忘录)