java.net

java.net

这里写图片描述

一些核心方法调用路径

这里以 PlainSocketImpl 和 PlainDatagramSocketImpl 为例子

Socket
  • Socket(String host, int port)
    • PlainSocketImpl.native void socketCreate
  • connect(SocketAddress endpoint)
    • PlainSocketImpl.native void socketConnect
  • getOutputStream()
    • SocketOutputStream.native void socketWrite0
    • SocketOutputStream.native static void init
  • getInputStream()
    • SocketInputStream.native static void init
    • SocketInputStream.native int socketRead0
ServerSocket
  • ServerSocket(int port, int backlog, InetAddress bindAddr)
    • PlainSocketImpl.native void socketCreate
    • PlainSocketImpl.native void socketBind
    • PlainSocketImpl.native void socketListen
  • accept()
    • PlainSocketImpl.native void socketAccept
DatagramSocket
  • DatagramSocket(int port, InetAddress laddr)
    • PlainDatagramSocketImpl.native void datagramSocketCreate
    • PlainDatagramSocketImpl.synchronized native void bind0
  • receive(DatagramPacket p)
    • PlainDatagramSocketImpl.synchronized native int peekData
    • PlainDatagramSocketImpl.synchronized native int peek
    • PlainDatagramSocketImpl.synchronized native void receive0
    • PlainDatagramSocketImpl.native int dataAvailable
  • send(DatagramPacket p)
    • PlainDatagramSocketImpl.synchronized native void bind0
    • PlainDatagramSocketImpl.native void send

core

@startuml

interface Closeable
interface ContentHandlerFactory
interface CookiePolicy
interface CookieStore
interface DatagramSocketImplFactory
interface FileNameMap
interface InetAddressImpl #PaleGreen
interface ProtocolFamily
interface SocketImplFactory
interface SocketOption
interface SocketOptions
interface SocksConsts #PaleGreen

enum StandardProtocolFamily

abstract class AbstractPlainDatagramSocketImpl #PaleGreen
abstract class AbstractPlainSocketImpl #PaleGreen
abstract class Authenticator
abstract class CacheRequest
abstract class CacheResponse
abstract class ContentHandler
abstract class CookieHandler
abstract class DatagramSocketImpl
abstract class JarURLConnection
abstract class ProxySelector
abstract class ResponseCache
abstract class SecureCacheResponse
abstract class SocketAddress
abstract class SocketImpl
abstract class URLConnection

class DatagramPacket << (F,red) >>
class HttpCookie << (F,red) >>
class IDN << (F,red) >>
class Inet4Address << (F,red) >>
class Inet6Address << (F,red) >>
class NetPermission << (F,red) >>
class NetworkInterface << (F,red) >>
class PasswordAuthentication << (F,red) >>
class SocketPermission << (F,red) >>
class StandardSocketOptions << (F,red) >>

class DefaultDatagramSocketImplFactory #PaleGreen
class DefaultInterface #PaleGreen
class HostPortrange #PaleGreen
class HttpConnectSocketImpl #PaleGreen
class Inet4AddressImpl #PaleGreen
class Inet6AddressImpl #PaleGreen
class InetAddressContainer #PaleGreen
class InMemoryCookieStore #PaleGreen
class PlainDatagramSocketImpl #PaleGreen
class PlainSocketImpl #PaleGreen
class SdpSocketImpl #PaleGreen
class SocketInputStream #PaleGreen
class SocketOutputStream #PaleGreen
class SocketSecrets #PaleGreen
class SocksSocketImpl #PaleGreen

class InterfaceAddress
class Proxy

Closeable <|.. ServerSocket
Closeable <|.. Socket

Closeable <|.. DatagramSocket
DatagramSocket <|-- MulticastSocket

CookieStore <|.. InMemoryCookieStore

InetAddress <|-- Inet4Address
InetAddress <|-- Inet6Address
InetAddressImpl <|-- Inet4AddressImpl
InetAddressImpl <|-- Inet6AddressImpl

ProtocolFamily <|.. StandardProtocolFamily

CacheResponse <|-- SecureCacheResponse

CookieHandler <|-- CookieManager

URLConnection <|-- HttpURLConnection
URLConnection <|-- JarURLConnection

SocketAddress <|-- InetSocketAddress

SocketOptions <|.. DatagramSocketImpl
DatagramSocketImpl <|-- AbstractPlainDatagramSocketImpl
AbstractPlainDatagramSocketImpl <|-- PlainDatagramSocketImpl

SocketOptions <|.. SocketImpl
SocketImpl <|-- AbstractPlainSocketImpl
AbstractPlainSocketImpl <|-- PlainSocketImpl
PlainSocketImpl <|-- HttpConnectSocketImpl
PlainSocketImpl <|-- SdpSocketImpl
SocksConsts <|.. SocksSocketImpl
PlainSocketImpl <|-- SocksSocketImpl

@enduml

ur*

这里写图片描述

@startuml

interface URLStreamHandlerFactory

abstract class URLConnection
abstract class URLStreamHandler

class URI << (F,red) >>
class URL << (F,red) >>
class URLClassLoader
class URLDecoder
class URLEncoder
class URLPermission << (F,red) >>

@enduml

exception

这里写图片描述

@startuml

class HttPretryException
class MalformedURLException
class PasswordAuthentication << (F,red) >>
class ProtocolException
class SocketTimeoutException
class UnknownHostException
class UnknownServiceException

SocketException <|-- BindException
SocketException <|-- ConnectException
SocketException <|-- NoRouteToHostException
SocketException <|-- PortUnreachableException

@enduml
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值