网络通信协议(IP地址,端口号,InetAddress,UDP与TCP)
来源:互联网 发布:emacs26 for windows 编辑:程序博客网 时间:2024/05/29 12:28
一、计算机网络:
通过某种方式将多台计算机进行连接,实现多台计算机彼此之间的互联以及数据的交换。即在不同的计算机上编写一些实现了网络连接的程序,这些程序可以实现位于同一个网络中的计算机之间的数据的交换。
二、网络通信协议:
同一个网络中的计算机进行连接和通信时的规则;
目前应用最广泛的是TCP/IP协议(包括,IP协议、TCP协议,UDP协议,ICMP协议等)。
在进行数据传输时,要求发送的数据与接收到的数据完全一样,这时,就需要在原有的数据上添加很多信息,以保证数据在传输过程中数据格式完全一致。TCP/IP协议的层次分为4层。
应用层--如 HTTP、FTP、DNS
主要负责应用程序的协议,如HTTP协议,FTP协议。
传输层--如 TCP、UDP
主要使网络程序进行通信,在进行网络通信时,可以采用TCP协议,也可以采用UDP协议。
网络层-- 如 IP协议,ICMP、IGMP
传输层--如 TCP、UDP
主要使网络程序进行通信,在进行网络通信时,可以采用TCP协议,也可以采用UDP协议。
网络层-- 如 IP协议,ICMP、IGMP
整个TCP/IP协议的核心,它主要用于将传输的数据进行分组,将分组数据发送到目标计算机或者网络。
链路层-- 如 驱动程序,接口
链路层-- 如 驱动程序,接口
用于定义物理传输通道,通常是对某些网络连接设备的驱动协议,例如针对光纤,双绞线的驱动。
三、IP地址和端口号
IP地址:它可以唯一标识一台计算机。
端口:在计算机中,不同的应用程序通过端口号来区分,通过IP地址连接到计算机后,如果想要访问计算机中的某个应用程序,还需要指定的端口号。
四、InetAddress类
jdk提供了一个InetAddress类,该类用于封装一个IP地址,并提供一系列与IP地址相关的方法。如下:
static InetAddress getByAddress(byte[] addr)在给定原始 IP 地址的情况下,返回 InetAddress 对象。static InetAddress getByAddress(String host, byte[] addr)根据提供的主机名和 IP 地址创建 InetAddress 对象。static InetAddress getByName(String host)①根据提供的主机名创建 InetAddress 对象。
②在给定主机名的情况下确定主机的 IP 地址。String getHostAddress() 返回 IP 地址字符串(以文本表现形式)。String getHostName() 获取此 IP 地址的主机名。static InetAddress getLocalHost()返回本地主机,创建一个表示本地主机的InetAddress对象。boolean isReachable(int timeout)判定指定的时间内地址是否可以到达。
②在给定主机名的情况下确定主机的 IP 地址。String getHostAddress() 返回 IP 地址字符串(以文本表现形式)。String getHostName() 获取此 IP 地址的主机名。static InetAddress getLocalHost()返回本地主机,创建一个表示本地主机的InetAddress对象。boolean isReachable(int timeout)判定指定的时间内地址是否可以到达。
用InetAddress类时应先用方法2或3或6创建对象,然后用对象进行对其他函数的调用。如下代码:
import java.net.InetAddress;public class Example01 {public static void main(String[] args) throws Exception {InetAddress localAddress = InetAddress.getLocalHost();InetAddress remoteAddress = InetAddress.getByName("www.baidu.com");byte[] bs = new byte[] { (byte) 61, (byte) 135, (byte) 169,(byte) 125 };System.out.println("本机的IP地址:" + localAddress.getHostAddress());System.out.println("baidu的IP地址:" + remoteAddress.getHostAddress());System.out.println("3秒是否可达:" + remoteAddress.isReachable(3000));System.out.println("baidu的主机名为:" + remoteAddress.getHostName());System.out.println("baidu的主机名为:" + remoteAddress.getByName("www.baidu.com"));System.out.println("remoteAddress对象:" + remoteAddress.getByAddress(bs));}}
结果:
本机的IP地址:192.168.43.162
baidu的IP地址:61.135.169.121
3秒是否可达:false
baidu的主机名为:www.baidu.com
baidu的主机名为:www.baidu.com/61.135.169.121
remoteAddress对象:/61.135.169.125
baidu的IP地址:61.135.169.121
3秒是否可达:false
baidu的主机名为:www.baidu.com
baidu的主机名为:www.baidu.com/61.135.169.121
remoteAddress对象:/61.135.169.125
五、UDP协议与TCP协议
传输层协议: 主要使网络程序进行通信。
UDP(用户数据协议):
无连接通信协议
数据传输时,数据的发送端和接收端不建立逻辑连接。即当一台计算机向另一台计算机发送数据时,数据的发送端不会确认接收端是否存在,就会发出数据,同样接收端在收到数据时,也不会向发送端反馈是否收到数据。
优点:UDP协议消耗资源小,通信效率高。(音频,视频的传送)
TCP(传输控制协议):
面向连接的通信协议
即在传输数据前先在发送端和接收端简历逻辑连接,然后再传输数据,它提供两台计算机之间可靠无差错的数据传输(下载文件)。
在TCP连接中必须明确客户端与服务器端,由客户段向服务器端发出连接请求,每次连接的创建需要经过”三次握手“
第一次:客户端向服务器端发出连接请求,等待服务器确认。
第二次:服务器端向客户端回送一个响应,通知客户端收到了连接请求。
第三次:客户端再次向服务器端发送确认信息,确认连接。
阅读全文
2 0
- 网络通信协议(IP地址,端口号,InetAddress,UDP与TCP)
- JAVA基础再回首(二十八)——网络编程概述、IP地址、端口号、TCP和UDP协议、Socket、UDP传输、多线程UDP聊天
- JAVA基础再回首(二十八)——网络编程概述、IP地址、端口号、TCP和UDP协议、Socket、UDP传输、多线程UDP聊天
- TCP/IP网络通信协议
- 19. JAVA 网络编程 Part 1 (IP与InetAddress类、URL与URLConnection类、URLEncoder与URLDecoder类、TCP&UDP)---- 学习笔记
- java:网络编程(InetAddress,InetSocketAddress,URL,TCP(Socket与SeverSocket),TCP与UDP的区别)
- 网络编程的概述2 网络通信中的三要素3 InetAddress的概述和测试,IP地址:InetAddress 传输协议(网络协议)TCP 可靠协议,需要连接,效率会稍低 没有大小的限制UDP 不:
- 网络基础TCP/IP通信协议
- Socket 网络通信协议:HTTP、TCP、UDP
- java 网络编程 -- IP地址的表示与网络接口信息的获取(InetAddress和NetworkInterface)
- java 网络编程 -- IP地址的表示与网络接口信息的获取(InetAddress和NetworkInterface)
- Socket,IP,端口,TCP,UDP
- TCP/IP网络编程 学习笔记_3 --给套接字分配IP地址和端口号
- TCP,IP,端口,地址(初步理解)
- JAVA笔记:Java网络编程(一)IP与InetAddress
- 学习笔记一:TCP与UDP通信协议
- TCP与UDP通信协议及Java实现
- IP地址与端口号
- 秒懂量化选股之最经典的因子选股
- [bzoj1093][ZJOI2007]最大半连通子图 Tarjan,DP
- Mysql学习历程(14)-查询
- LaTeX lstlisting代码块中加入中文注释。
- *树上倍增(LCA)
- 网络通信协议(IP地址,端口号,InetAddress,UDP与TCP)
- Resquest学习
- 前后端路由
- css未盒子div居中的多种方法
- Lucene入门
- 选择排序算法(Selection Sort)
- Eclipse10个最有用的快捷键
- scala之trait理解
- 【数据结构】Bloom Filter