`

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(){}
}

 

  • 大小: 46.5 KB
分享到:
评论

相关推荐

    实战C#.NET编程----Spring.NET & NHibernate从入门到精通

    《实战C#.NET编程——Spring.NET & NHibernate从入门到精通》是一本深入探讨C# .NET开发领域中两个重要框架的专著。Spring.NET和NHibernate分别是.NET平台上的轻量级应用程序框架和流行的对象关系映射(ORM)工具,...

    java.net包socket通信

    总之,Java.NET包的Socket通信为Java开发者提供了一套强大且灵活的网络编程工具,无论是构建简单的客户端/服务器应用,还是复杂的分布式系统,都可以依赖它来实现可靠的数据交换。通过深入理解Socket的工作原理和...

    实战Csharp.NET编程----Spring.NET NHibernate从入门到精通 V0.50

    ### 实战C#.NET编程——Spring.NET与NHibernate从入门到精通 #### C#与.NET简介 本章节首先介绍了C#语言的基础概念及其在.NET框架中的应用。C#是一种现代的、面向对象的编程语言,它由微软开发,并且与.NET框架...

    实战Csharp.NET编程----Spring.NET NHibernate从入门到精通

    《实战Csharp.NET编程——Spring.NET NHibernate从入门到精通》是一本专注于.NET开发者深入学习C#编程、Spring.NET框架以及NHibernate ORM工具的实践指南。这本书旨在帮助读者从基础知识开始,逐步掌握如何在.NET...

    java-network-programming网络编程Java实现

    在Java中,我们可以使用`java.net.Socket`类和`java.net.ServerSocket`类来实现TCP通信。TCP保证了数据的顺序传输和可靠性,但相对而言效率较低,因为每次读写操作都会导致阻塞。 UDP(User Datagram Protocol)则...

    java.net.SocketException Connection reset 解决方法

    "java.net.SocketException Connection reset 解决方法" 在 Java 编程中,SocketException 是一种常见的异常,特别是在网络编程中。Conexion reset by peer 是一种特殊的 SocketException,它发生在客户端和服务器...

    Java-Java网络编程教程

    1. **Socket编程**:Java提供了`java.net.Socket`类和`java.net.ServerSocket`类,用于实现TCP通信。Socket代表一个网络连接的端点,ServerSocket则用于监听特定端口,等待客户端的连接请求。 2. **DatagramSocket...

    Spring.NET-2.0.0-M2

    Spring.NET 2.0.0-M2 是该框架的一个里程碑版本,旨在提供与 Java 版本类似的依赖注入(Dependency Injection,DI)和面向方面编程(Aspect-Oriented Programming,AOP)功能,同时也针对 .NET 平台进行了优化。...

    vb.net 源码-C#- DBhelper

    在IT行业中,VB.NET和C#是两种广泛使用的编程语言,尤其在开发Windows应用程序和数据库交互方面。DBHelper是一个常见的工具类,它为开发者提供了一种简单、方便的方式来执行数据库操作,如查询、插入、更新和删除...

    JAVA.NET.SOCKETEXCEPTION TOO MANY OPEN FILES解决方法

    JAVA.NET.SOCKETEXCEPTION TOO MANY OPEN FILES错误是一种常见的网络编程错误,发生在Java应用程序中, especialmente 在 Linux 操作系统中。该错误的出现是由于进程打开的文件数量超过了操作系统的限制,导致服务器...

    java.net.SocketTimeoutException: Receive timed out

    标题中的“java.net.SocketTimeoutException: Receive timed out”是一个Java编程中常见的异常,通常发生在进行网络通信时,接收数据超时。这个异常是由于Socket在等待接收数据时超过了预设的超时时间,没有接收到...

    java -> QuickServer 新建 TCP 服务器端

    在Java中,`java.net.ServerSocket`和`java.net.Socket`类提供了TCP服务器和客户端的基本实现,但实际开发中,为了提高效率和易用性,开发者通常会依赖如QuickServer这样的高级框架。 QuickServer是一个轻量级的、...

    CP IDMR02 二代证 2013年齐全开发包

    目前有基于以下编程语言的示例:VC、C#、VB.net、Delphi、BCB、Java、PB。所有示例都使用“打开设备”->“读卡”->“关闭设备”的调用顺序。 使用调用示例时请将cardapi3.dll、sdtapi.dll、WltRS.dll、license.dat四...

    [中文][ASP.NET入门经典-VB.NET 编程篇][35.86 MB]

    ### ASP.NET 入门经典——VB.NET编程篇 #### 知识点概述: 根据提供的文件信息,本资源主要涉及的是ASP.NET与VB.NET的基础及应用技术。ASP.NET是微软开发的一种用于构建动态网页的应用框架,而VB.NET则是Visual ...

    Office自动化编程实例锦集动态创建播放幻灯片

    总结来说,"Office自动化编程实例锦集动态创建播放幻灯片"涉及的关键知识点包括:Office COM接口的使用、C++.NET编程、Visual Studio .NET环境、PowerPoint API操作(如创建、添加幻灯片、设置内容)、以及事件驱动...

    Spring.net二----初探IOC容器.rar源代码

    Spring.NET是中国开源社区基于.NET Framework实现的一个轻量级企业级应用框架,它是对Java平台上的Spring框架的.NET版本。在本教程中,我们将深入探讨Spring.NET中的重要组件——IOC(Inversion of Control,控制...

    C#.NEt--利用委托排序

    最近自学java中的框架-struts写了一些小例子,这都是很经典的程序,如果大家瞧得起要下载去看看,顺便给俺找找不足的地方。我的qq 821865130 email qingtian_hechen@163.com 希望大家能多多给我帮助。在此谢谢各位!...

    Spring.NET-1.2.0-M1

    Spring.NET是中国开源社区对Spring框架的一个移植版本,它将Java平台上的Spring精神带到了.NET环境中。Spring.NET是一个全面的企业级应用程序开发框架,旨在简化.NET应用的设计、开发和测试过程,同时提供面向切面...

Global site tag (gtag.js) - Google Analytics