31、java.net包->网络编程

一、网络编程

 

  1. 网络模型:OSI参考模型,TCP/IP参考模型
  2. 网络通讯要素:IP地址,端口号,传输协议

二、网络模型

 

  1. OSI:Open System Interconnection,开放式系统互联参考模型 
  2. TCP/IP:Transmission Control Protocol/Internet Protocol的简写,
  3.      中译名为传输控制协议/因特网互联协议,又名网络通讯协议,
  4.      是Internet最基本的协议、Internet国际互联网络的基础,
  5.      由网络层的IP协议和传输层的TCP协议组成。


 

三、网络通信要素

 

  • IP地址(InetAddress):网络中设备的标识,不易记忆,可用主机名
  •       本地回环地址:127.0.0.1主机名:localhost
  • 端口号:用于标识进程的逻辑地址,不同进程的标识
  •       有效端口:0-65535,其中0-1024系统使用或保留端口
  • 传输协议:通讯的规则,常见协议:TCP   UDP
  •    UDP:User Datagram Protocol用户数据包协议
  • 是 OSI 参考模型中一种无连接的传输层协议
  • 提供面向事务的简单不可靠信息传送服务
  • IETF RFC 768是UDP的正式规范

四、java对IP的描述:java.net.InetAddress类

 

  1. 软件包 java.net 为实现网络应用程序提供类
  2. InetAddress类表示互联网协议 (IP) 地址。 
  3. IP 地址是 IP 使用的 32 位或 128 位无符号数字,它是一种低级协议,UDP 和 TCP 协议都是在它的基础上构建的。
public class InetAddress implements Serializable
{
	//没有构造函数

	//返回此 InetAddress 对象的原始 IP 地址。结果按网络字节顺序:地址的高位字节位于 getAddress()[0] 中
	public byte[] getAddress(){}

	//在给定主机名的情况下,根据系统上配置的名称服务返回其 IP 地址所组成的数组
	public static InetAddress[] getAllByName(String host)
                                  throws UnknownHostException{}

	//在给定主机名的情况下确定主机的 IP 地址。
	public static InetAddress getByName(String host)
                             throws UnknownHostException{}

	//返回 IP 地址字符串(以文本表现形式)
	public String getHostAddress(){}

	//获取此 IP 地址的主机名
	public String getHostName(){}

	//返回本地主机
	public static InetAddress getLocalHost()
                                throws UnknownHostException{}

	//将此 IP 地址转换为 String。返回的字符串具有以下形式:主机名/字面值 IP 地址
	public String toString(){}
}

 

五、TCP,UDP,Socket

 

UDP

  1. 将数据及源和目的封装在数据包中,不需要建立连接
  2. 每个数据报的大小限制在64k内
  3. 因无连接,是不可靠协议
  4. 不需要建立连接,速度快
  5. UDP就如同邮寄包裹

TCP

  1. 建立连接,形成传输数据的通道
  2. 在连接中进行大数据量传输
  3. 通过三次握手完成连接,是可靠协议
  4. 必须建立连接,效率会稍低
  5. TCP就如同打电话

Socket

  1. Socket就是为网络服务提供的一种机制
  2. 通信的两端都有Socket
  3. 网络通信其实就是Socket间的通信
  4. 数据在两个Socket间通过IO传输

六、SocketAddress

 

  1. 此类表示不带任何协议附件的 Socket Address。
  2. 作为一个抽象类,应通过特定的、协议相关的实现为其创建子类。 
  3. 它提供不可变对象,供套接字用于绑定、连接或用作返回值。
  4. 没有任何方法,除了默认的和继承自Object的,类里面是空的
public abstract class SocketAddress implements Serializable{}

 

七、InetSocketAddress

 

  1. 此类实现 IP 套接字地址(IP 地址 + 端口号)。
  2. 它还可以是一个对(主机名 + 端口号),在此情况下,将尝试解析主机名。
  3. 如果解析失败,则该地址将被视为未解析 地址,但是其在某些情形下仍然可以使用,比如通过代理连接。 
  4. 它提供不可变对象,供套接字用于绑定、连接或用作返回值。 
  5. 通配符 是一个特殊的本地 IP 地址。它通常表示“任何”,只能用于 bind 操作
public class InetSocketAddress extends SocketAddress
{
	//根据 IP 地址和端口号创建套接字地址
	public InetSocketAddress(InetAddress addr,
                         int port){}

	//创建套接字地址,其中 IP 地址为通配符地址,端口号为指定值
	public InetSocketAddress(int port){}

	//根据主机名和端口号创建套接字地址,尝试将主机名解析为 InetAddress。如果尝试失败,则将地址标记为未解析
	public InetSocketAddress(String hostname,
                         int port){}

	//获取 InetAddress。
	public final InetAddress getAddress(){}

	//获取 hostname。
	public final String getHostName(){}

	//获取端口号
	public final int getPort(){}
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值