问题描述
大家好,不知道有没有谁知道java.net包中的DatagramSocket中的send(receive)方法是怎么实现的吗?我看了看,发现在DatagramSocket类中的send的方法发送信息是通过调用DatagramSocketImpl(一个abstract类)来实现的,但是这个方法是空的!那我就找DatagramSocketImpl的子类咯,也就是PlainDatagramSocketImpl类,发现里面的send方法也是空的,那到底java是怎么最终把一个数据报通过socket发送出去的呢?
解决方案
解决方案二:
DatagramSocket通过UDP发出。不用建立持久连接的。
解决方案三:
我说的是那它里面的代码是怎么实现的呢?在DatagramSocket的send方法里面调用了个getImpl().send(),让我很是遗憾,这个后面的send不知都是怎么实现的
解决方案四:
DatagramSocket封装的是底层的socket,socket基于不同的通信协议又有不同的实现,你看到的getImpl()是会调用实际使用的应用实现方法。
时间: 2024-09-14 18:45:24