一、网络编程
- 网络模型:OSI参考模型,TCP/IP参考模型
- 网络通讯要素:IP地址,端口号,传输协议
二、网络模型
- OSI:Open System Interconnection,开放式系统互联参考模型
- TCP/IP:Transmission Control Protocol/Internet Protocol的简写,
- 中译名为传输控制协议/因特网互联协议,又名网络通讯协议,
- 是Internet最基本的协议、Internet国际互联网络的基础,
- 由网络层的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类
- 软件包 java.net 为实现网络应用程序提供类
- InetAddress类表示互联网协议 (IP) 地址。
- 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
- 将数据及源和目的封装在数据包中,不需要建立连接
- 每个数据报的大小限制在64k内
- 因无连接,是不可靠协议
- 不需要建立连接,速度快
- UDP就如同邮寄包裹
TCP
- 建立连接,形成传输数据的通道
- 在连接中进行大数据量传输
- 通过三次握手完成连接,是可靠协议
- 必须建立连接,效率会稍低
- TCP就如同打电话
Socket
- Socket就是为网络服务提供的一种机制
- 通信的两端都有Socket
- 网络通信其实就是Socket间的通信
- 数据在两个Socket间通过IO传输
六、SocketAddress
- 此类表示不带任何协议附件的 Socket Address。
- 作为一个抽象类,应通过特定的、协议相关的实现为其创建子类。
- 它提供不可变对象,供套接字用于绑定、连接或用作返回值。
- 没有任何方法,除了默认的和继承自Object的,类里面是空的
public abstract class SocketAddress implements Serializable{}
七、InetSocketAddress
- 此类实现 IP 套接字地址(IP 地址 + 端口号)。
- 它还可以是一个对(主机名 + 端口号),在此情况下,将尝试解析主机名。
- 如果解析失败,则该地址将被视为未解析 地址,但是其在某些情形下仍然可以使用,比如通过代理连接。
- 它提供不可变对象,供套接字用于绑定、连接或用作返回值。
- 通配符 是一个特殊的本地 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(){} }
相关推荐
《实战C#.NET编程——Spring.NET & NHibernate从入门到精通》是一本深入探讨C# .NET开发领域中两个重要框架的专著。Spring.NET和NHibernate分别是.NET平台上的轻量级应用程序框架和流行的对象关系映射(ORM)工具,...
总之,Java.NET包的Socket通信为Java开发者提供了一套强大且灵活的网络编程工具,无论是构建简单的客户端/服务器应用,还是复杂的分布式系统,都可以依赖它来实现可靠的数据交换。通过深入理解Socket的工作原理和...
### 实战C#.NET编程——Spring.NET与NHibernate从入门到精通 #### C#与.NET简介 本章节首先介绍了C#语言的基础概念及其在.NET框架中的应用。C#是一种现代的、面向对象的编程语言,它由微软开发,并且与.NET框架...
《实战Csharp.NET编程——Spring.NET NHibernate从入门到精通》是一本专注于.NET开发者深入学习C#编程、Spring.NET框架以及NHibernate ORM工具的实践指南。这本书旨在帮助读者从基础知识开始,逐步掌握如何在.NET...
"java.net.SocketException Connection reset 解决方法" 在 Java 编程中,SocketException 是一种常见的异常,特别是在网络编程中。Conexion reset by peer 是一种特殊的 SocketException,它发生在客户端和服务器...
1. **Socket编程**:Java提供了`java.net.Socket`类和`java.net.ServerSocket`类,用于实现TCP通信。Socket代表一个网络连接的端点,ServerSocket则用于监听特定端口,等待客户端的连接请求。 2. **DatagramSocket...
Spring.NET 2.0.0-M2 是该框架的一个里程碑版本,旨在提供与 Java 版本类似的依赖注入(Dependency Injection,DI)和面向方面编程(Aspect-Oriented Programming,AOP)功能,同时也针对 .NET 平台进行了优化。...
在IT行业中,VB.NET和C#是两种广泛使用的编程语言,尤其在开发Windows应用程序和数据库交互方面。DBHelper是一个常见的工具类,它为开发者提供了一种简单、方便的方式来执行数据库操作,如查询、插入、更新和删除...
标题中的“java.net.SocketTimeoutException: Receive timed out”是一个Java编程中常见的异常,通常发生在进行网络通信时,接收数据超时。这个异常是由于Socket在等待接收数据时超过了预设的超时时间,没有接收到...
JAVA.NET.SOCKETEXCEPTION TOO MANY OPEN FILES错误是一种常见的网络编程错误,发生在Java应用程序中, especialmente 在 Linux 操作系统中。该错误的出现是由于进程打开的文件数量超过了操作系统的限制,导致服务器...
在Java中,`java.net.ServerSocket`和`java.net.Socket`类提供了TCP服务器和客户端的基本实现,但实际开发中,为了提高效率和易用性,开发者通常会依赖如QuickServer这样的高级框架。 QuickServer是一个轻量级的、...
目前有基于以下编程语言的示例:VC、C#、VB.net、Delphi、BCB、Java、PB。所有示例都使用“打开设备”->“读卡”->“关闭设备”的调用顺序。 使用调用示例时请将cardapi3.dll、sdtapi.dll、WltRS.dll、license.dat四...
### ASP.NET 入门经典——VB.NET编程篇 #### 知识点概述: 根据提供的文件信息,本资源主要涉及的是ASP.NET与VB.NET的基础及应用技术。ASP.NET是微软开发的一种用于构建动态网页的应用框架,而VB.NET则是Visual ...
总结来说,"Office自动化编程实例锦集动态创建播放幻灯片"涉及的关键知识点包括:Office COM接口的使用、C++.NET编程、Visual Studio .NET环境、PowerPoint API操作(如创建、添加幻灯片、设置内容)、以及事件驱动...
Spring.NET是中国开源社区基于.NET Framework实现的一个轻量级企业级应用框架,它是对Java平台上的Spring框架的.NET版本。在本教程中,我们将深入探讨Spring.NET中的重要组件——IOC(Inversion of Control,控制...
最近自学java中的框架-struts写了一些小例子,这都是很经典的程序,如果大家瞧得起要下载去看看,顺便给俺找找不足的地方。我的qq 821865130 email qingtian_hechen@163.com 希望大家能多多给我帮助。在此谢谢各位!...
Spring.NET是中国开源社区对Spring框架的一个移植版本,它将Java平台上的Spring精神带到了.NET环境中。Spring.NET是一个全面的企业级应用程序开发框架,旨在简化.NET应用的设计、开发和测试过程,同时提供面向切面...
Java获取URL对应的资源 在JAVA中,Java.net包里面的类是进行网络编程的,其中java.net.URL类和java.net.URLConection类使编程者方便地利用URL在Internet上进行网络通信。1、认识URL(Java API doc)类 URL 代表一个...