java网络编程 最全最精美 不好或者不详细你打我

2021-01-26 14:17:31 浏览数 (1)

By CaesarChang 合作: root121toor@gmail.com

~关注我 带你看更多精品技术和面试必备

1. 什么是计算机网络

分布在不同地域的计算机, 通过硬件等网络设备使用通信线路互相连接形成的一个网格系统

2. 什么是计算机的IP地址

IP地址 是计算机在互联网中的唯一标识 . 1 本机IP localhost 2 公网IP

3. 什么是 网络中 网站的域名

域名可以简单的理解为, IP地址的别名. 更方便记忆 当输入域名后(例如www.baidu.com) , 计算机会访 问域名解析商 , 然后得到ip地址, 再进行访问.

4. 什么是计算机的端口号

端口号的范围 0-65535 之间 . ***** 端口号是计算机中 程序的标识 . 用于在一台计算机中区分不同的应用程序 一个程序可以占用多个端口号,

5. 什么是计算机之间的通信协议

是计算机与计算机之间交流的标准 . 是对数据的 传输速率, 传入接口, 步骤控制 出错控制 等等 制定的一套标准 ! 常用的通信协议: http 协议超文本传输协议https协议安全的超文本传输协议FTP协议文件传输协议Tcp协议传输控制协议UDP协议数据报协议 TCP的握手定理: 可靠传输 三次握手建立连接阐述: 第一次握手:客户端要和服务端进行通信,首先要告知服务端一声,遂发出一个SYN=1的连接请求信号,”服务端哥哥,我想给你说说话”。 第二次握手:当服务端接收到客户端的连接请求,此时要给客户端一个确认信息,”我知道了(ACK),我这边已经准备好了,你现在能连吗(SYN)”。 第三次握手:当客户端收到了服务端的确认连接信息后,要礼貌的告知一下服务端,“好的,咱们开始联通吧(ACK) 四次挥手断开连接阐述: 第一次挥手:双方交流的差不多了,此时客户端也已经结尾了,接下来要断开通信连接,所以告诉服务端“我说完了(FIN)”,此时自身形成等待结束连接的状态。 第二次挥手:服务端知道客户端已经没话说了,服务端此时还有两句心里话要给客户端说,“我知道你说完了(ACK),我再给你说两句,&*……%¥”。 第三次挥手:此时客户端洗耳恭听继续处于等待结束的状态,服务器端也说完了,自身此时处于等待关闭连接的状态,并对告诉客户端,“我说完了,咱们断了吧(FIN)”。 第四次挥手:客户端收知道服务端也说完了,也要告诉服务端一声(ACK),因为连接和断开要双方都按下关闭操作才能断开,客户端同时又为自己定义一个定时器,因为不知道刚才说的这句话能不能准确到达服务端(网络不稳定或者其他因素引起的网络原因),默认时间定为两个通信的最大时间之和,超出这个时间就默认服务器端已经接收到了自己的确认信息,此时客户端就关闭自身连接,服务器端一旦接收到客户端发来的确定通知就立刻关闭服务器端的连接。 UDP: 面向无连接的协议, 不可靠协议, 传输数据不需要建立连接,不管对方端服务是否启动 ,直接将数据.数据源,目的地都封装到数据包中, 但是传输速度快, 但容易丢失数据

网络 编程程序的分类:

1.B/S 程序 : 浏览器与服务器程序 2.C/S 程序 : 客户端与服务器程序

基于TCP 协议 的 C/S 客户端 服务端程序

需要使用到两个类, 来编写TCP协议的 CS程序 . 1.ServerSocket 搭建服务器 2.Socket 搭建客户端 两方使用socket(套接字 , 通信端点) 进行交流

ServerSocket

用于创建服务器 . 创建完毕后, 会绑定一个端口号. 然后此服务器可以等待客户端连接 . 每连接一个客户端 , 服务器就会得到一个新的Socket对象, 用于跟客户端进行通信 . 常用构造方法: new ServerSocket(int port); 常用方法: Socket accept(); 等待客户端连接 . 此方法会导致线程的阻塞! 直到一个新的客户端连接成功, return Socket对象后, 线程在继续执行. void close(); 释放占用的端口号 , 关闭服务器.

Socket

是两台计算机之间通信的端点 , 是网络驱动提供给应用程序编程的一种接口 一套标准, 一种机制 . 常用构造方法: new Socket(String ip, int prot) 参数1. 服务器的ip地址 参数2. 服务器软件的端口号.. 常用方法 OutputStream getOutputStream(); 返回的是 , 指向通信的另一端点的输出流 InputStream getInputStream(); 返回的是 , 指向通信的另一端点的输入流 void close(); 关闭套接字 客户端与服务器获取流的顺序必须是相反的: 例如: 客户端先得到了输入流 , 那服务器必须先获取输出流

UDP 协议(数据报) 程序 了解

用户数据报协议, 与tcp协议不同, UDP的连接是不可信的. 数据发送的成功与失败 与 数据报是无关的 . 使用到两个类: 1.数据报套接字: DatagramSocket 用于发送 与 接收数据包的Socket - 构造方法: - DatagramSocket(int port); - 参数: 端口号 - 常用方法: - close() : 关闭套接字. - send(DatagramPacket dp) 将一个数据包dp 发送出去 - receive(DatagramPacket dp) 接收一个数据包, 并存储到参数dp中. 2.数据包 DatagramPacket 用于发送或接收数据时, 盛放数据的对象! - 构造方法: 1.用于发送数据时, 组装数据的 构造方法. DatagramPacket(byte[] bytes, int startIndex, int len, InetAddress ip, int port); 参数1. 要发送的数据, 是字节数组的形式 参数2. 有效数据 在数组中的起始位置 参数3. 有效数据 在数组中的长度 参数4. 当前这个数据包, 准备发送到的IP地址, InetAddress 这个类的对象, 用于描述 IP . 得到InetAddress对象的方式: - InetAddress ip = InetAddress.getByName("192.168.102.228"); 参数5. 当前这个数据包, 准备发送到目标计算机的哪个端口号. 2.用于接收数据时, 存储数据的 构造方法. 创建的是 不包含数据的数据包, 用于在接收到数据后, 存储数据 ! DatagramPacket(byte[] bytes,int len) 参数1. 用于存储数据的 数组 参数2. 允许存储的最大长度 - 常用方法: byte[] getData() 用于获取数据包中的有效字节数组 int getLength 用于获取数据包中的有效数据的长度

InetAddress 描述IP地址的类

InetAddress 这个类的对象, 用于描述IP . 得到InetAddress对象的方式: InetAddress ip = InetAddress.getByName("192.168.102.228"); 在UDP协议中. 通过数据包DatagramPacket的getAddress方法, 可以得到数据包来自哪个ip 在TCP协议中, 通过套接字Socket的getInetAddress方法, 可以得到套接字连接的ip地址. - 常用方法: 1.String getHostAddress() ip地址字符串 2.String getHostName() 计算机名称, 当名称无法获取时, 获取的为ip地址

请进入XML与JSON 点我

0 人点赞