socket客户端:

在socket的构造器中有一个setImpl()方法

如果创建成功,会将自己封装给SocketImpl类

connect的核心代码
进入createImpl方法:

此处的方法创建socket套接字

部分connect链接

真正实现链接的方法,上面的都是封装
此时客户端已经实现了链接。
进入 socket.getOutputStream();


此处返回的是一个new SocketOutputStream(this);
继续点进去


我们调用父类的构造器,初始化文件描述符
最后点进impl.getSocket();

发现居然是SocketImpl类

点击setSocket查看何处设置的soc

居然又回到了我们最开始创建socket的时候
奇怪的问题,在java里我们是怎么写入 socket流的?
我们点入outputStream.write();方法

会找到这样一个方法,写入特殊输出的流
点击它的实现方法:

就会发现熟悉的封装子类了


最后就找到地了
