关于java.net包中Datagramsocket实现的问题

问题描述

大家好,不知道有没有谁知道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

关于java.net包中Datagramsocket实现的问题的相关文章

Java IO 包中的Decorator模式

JDK为程序员提供了大量的类库,而为了保持类库的可重用性,可扩展性和灵活性,其中使用到了大量的设计模式,本文将介绍JDK的I/O包中使用到的Decorator模式,并运用此模式,实现一个新的输出流类. Decorator模式简介 Decorator模式又名包装器(Wrapper),它的主要用途在于给一个对象动态的添加一些额外的职责.与生成子类相比,它更具有灵活性. 有时候,我们需要为一个对象而不是整个类添加一些新的功能,比如,给一个文本区添加一个滚动条的功能.我们可以使用继承机制来实现这一功能,

java.awt包中,标示区域的是哪个类,类里边可以传一个Rectangle

问题描述 java.awt包中,标示区域的是哪个类,类里边可以传一个Rectangle 我需要一个awt包中的表示区域的类,就类似与C# 中的Region(Rectangle rect)一样,是什么类呢 解决方案 javadoc 希望对你有帮助 解决方案二: 看看这个

谁能帮我举个java.nio包中的ByteOrder类方法(nativeOrder()、toString())的用法?

问题描述 谁能帮我举个java.nio包中的ByteOrder类方法(nativeOrder().toString())的用法?

Java数据库编程中查询结果的表格式输出

编程|数据|数据库 [内容摘要]本文较为详细地介绍了在Java数据库编程中,利用表格输出查询结果的方法:并对所涉及的类给以了简要说明.[关键字]类.对象.接口[作者简介]男,26岁,陕西财经学院研究生,师从陈逢吉教授,从事金融信息系统方面的研究. 利用Java开发数据库应用系统时,经常需要在用户界面上显示查询结果.由于SUN公司提供的JDK1.x开发工具包不是可视化的集成开发环境(IDE),不能象Delphi.VB那样方便地把查询结果在DBGrid等表格中显示出来.因此,只能靠自己编写代码来实现

Java Socket编程中的一个秘密类

编程 介绍 Java平台在java.net包里来实现Socket.在这本文中,我们将使用Java.net包中的下面三个类来工作: ·URLConnection ·Socket ·ServerSocket 在java.net包里包含有更多的类,但是这些是你最经常遇见的,让我们从URLConnection开始,这个类提供了在你的java代码里使用Socket的方法而无需了解Socket的底层机制. 甚至不用尝试就可以使用sockets 连接到一个URL包括以下几个步骤: ·创建一个URLConnec

Java编程那些事儿74——java.lang包介绍

9.4 JDK API包名综述 在整个JDK API中,大约包含1.200个包,总体来看,包名第一个名称主要有三种:java.javax和org.其中以java开头的包名是JDK的基础语言包,以javax开头的属于JDK扩展包(其中x是extend的简写),而以org开头的则是第三方组织提供的功能包(org是organization的简写).而在JDK API中还包含了一些以com.sun开头的包名,这些是SUN公司提供的一些功能包,由于这些包中的类随着JDK版本的更改变化很大,不具备兼容性,所

通过HTTP加载Java资源包

使用资源包的另一个方法 请设想一下这种情况:您必须提供一个显示小部件,它能够从数据库中提取消息键(keys)和消息替代参数,在 Java 资源包中查找键,然后格式化消息并显示出来.惟一的问题是这个资源包位于 Web 应用程序中,而不是您的小部件所在的位置.事实上,Web 应用程序位于不同的服务器中. 这并不是 Java 资源包的典型使用情况,而可能是一场噩梦.您如何来实现这一点呢?为了不进行空泛的解释,本文包括了一个示例应用程序,供你下载运行.它将更轻松地向您演示并帮助您做到这点. 示例应用程序

jar-Java JAR包中的类 父类方法不可见等

问题描述 Java JAR包中的类 父类方法不可见等 场景: 两个jar包分别为a.jar.b.jar.b.jar中引用了a.jar,具体为b.jar中的类B继承了a.jar中的类A. A有两个方法,a.getName(),a.getAge(),B重写了getName方法,未重写getAge方法. 新建了一个Java项目C,**C只引用了b.jar,未引用a.jar**,于是出现了如下两个问题: 1.在C项目中,类B没有getAge方法 2.在C项目中,使用强制类型转换时(如)B b = (B)

深入解析Java的包(package)_java

虽然 Java 语言是典型的面向对象编程语言,但其中的八种基本数据类型并不支持面向对象编程,基本类型的数据不具备"对象"的特性--不携带属性.没有方法可调用. 沿用它们只是为了迎合人类根深蒂固的习惯,并的确能简单.有效地进行常规数据处理. 这种借助于非面向对象技术的做法有时也会带来不便,比如引用类型数据均继承了 Object 类的特性,要转换为 String 类型(经常有这种需要)时只要简单调用 Object 类中定义的toString()即可,而基本数据类型转换为 String 类型