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方法。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容