socket客户端:
在socket的构造器中有一个setImpl()方法
如果创建成功,会将自己封装给SocketImpl类
connect的核心代码
进入createImpl方法:
此处的方法创建socket套接字
部分connect链接
真正实现链接的方法,上面的都是封装
此时客户端已经实现了链接。
进入 socket.getOutputStream();
此处返回的是一个new SocketOutputStream(this);
继续点进去
我们调用父类的构造器,初始化文件描述符
最后点进impl.getSocket();
发现居然是SocketImpl类
点击setSocket查看何处设置的soc
居然又回到了我们最开始创建socket的时候
奇怪的问题,在java里我们是怎么写入 socket流的?
我们点入outputStream.write();方法
会找到这样一个方法,写入特殊输出的流
点击它的实现方法:
就会发现熟悉的封装子类了
最后就找到地了