IP : Internet Protocol ( 网络之间互连的协议 ) ,用来解决通信实体的地址问题 ——-> java.net.InetAddress
查询IP地址的命令 :
Windows : ipconfig /all
Unix / Linux / Mac OS : ifconfig -a
IP v4 : 采用 32 bit 的数字表示一个地址 ——-> java.net.Inet4Address
通常看到的 192.168.100.100 形式是将 32bit 拆分成 4 各部分,每个部分 8bit
不同的部分之间 用 圆点 进行分隔
IP v6 : 采用 128bit 的数字表示一个地址 ——-> java.net.Inet6Address
通常看到的 FEC0:0:0:ffff::1
每个部分由 4 位 十六进制 表示的 整数 组成,比如 FEC0 , 每部分占 16 bit
不同的部分之间 用 冒号 进行分隔 ,( 分成 8 个部分 )
如果 某个部分 的 4 个十六进制数字都是 0 ,可以只写一个 ,比如 0000 可以写成 0
FEC0:0:0:ffff::1 ——> FEC0:0000:0000:FFFF:0000:0000:0000:0001
Port : 端口号 ,是一个 16 bit 的一个整数,用来 标识 同一个机器上的 不同程序
端口号,通常使用 int 类型的数值来表示,其范围是 [ 0 , 65535 ]
公认端口 : 从 0 到 1023
他们紧密绑定一些特定服务,如 80 端口、23 端口、21 端口 等等
注册端口 : 从 1024 到 49151
松散地绑定一些服务,比如
» Oracle 数据库默认的端口是 1521
» MySQL 数据库默认的端口是 3306
» Tomcat 默认的端口是 8080
动态或私有端口 : 从 49152 到 65535
java.net.InetSocketAddress 类型的实例表示 ( IP + Port )
1.0.0.2:9527
java.net.URL 代表一个统一资源定位符 ( URL ) ,它是指向互联网 “资源” 的指针
协议 ://主机:端口/资源路径和名称
ftp://ftp.baidu.com:xx/金刚.mkv
jdbc :mysql:// localhost :3306/ea?useUnicode=true&characterEncoding=utf8
jdbc:oracle:thin:@localhost:1521:ea
java.net.URI 表示一个 统一资源标识符 ( Identifier ) 引用
可以是
也可以是 /customer/account/change/password.do
IP : 用来解决通信实体的地址问题
Port : 用来标识同一个通信实体上的不同程序
jdbc:mysql://127.0.0.1:3306/ecut
jdbc:mysql:@127.0.0.1:1521:ecut
TCP : 解决数据传输问题
面向连接的、可靠的数据传输协议 ( 代价较大 )
ServerSocket / Socket
ServerV4 监听客户端连接、将监听到的客户端加入集合、启动服务 线程
ClientV4 连接远程服务器、启动接受数据的线程、向服务器发送数据
UDP : 解决数据传输问题
非面向连接、不可靠的数据传输协议 ( 代价较小 )
DatagramSocket :
DatagramPacket 数据报包 ( 其中包含 数据 、 源IP地址和源端口 、目的IP地址和目的端口 )
setData( byte[] data ) 一般用来设置将要发送的数据
setSocketAddress( SocketAddress remote ) 设置目的IP地址和目的端口
getLength() 用来获取本次接受到的字节数目
receive( DatagramPacket dp ) 用来接收数据报包
send( DatagramPacket dp ) 用来发送数据报包
MulticastSocket : UDP (组播)