IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> Java----网络编程 -> 正文阅读

[网络协议]Java----网络编程

目录

目录

目录

网络编程概述

网络编程中有两个主要的问题:

一、网络通信两个要素:

1. 如何实现网络中的主机互相通信?

2. InetAdress

3. 端口号

4. 通信协议:

三、网络编程

1. TCP编程

2. UDP编程

3. URL编程


网络编程概述

网络编程中有两个主要的问题:

1. 如何准确的定位网络上的一台或多台主机,定位主机上的特定的应用
2. 找到主机后如何可靠高效地进行数据传输

一、网络通信两个要素:

1. 如何实现网络中的主机互相通信?

  • ip 和 端口号
  • 提供网络通信协议。 TCP/IP参考模型(应用层,传输层,网络层,物理+数据链路层),

2. InetAdress

  • 唯一的标识 internet 上的计算机 ( 通信实体 )
  • 本地回环地址(hostAddress):127.0.0.1 ? 主机名 ( hostName ):localhost
  • IP地址分类方式一 : IPV4 ? ? IPV6
    • IPV4:4个字节组成,4个0~255。大概42亿个, 30亿都在北美,亚洲4亿。2011年初已经用尽。以点分十进制表示,如192.168.0.1
    • IPV6:128位(16个字节),写成8个无符号整数,每个整数用四个十六进制位表示,数之间用冒号 隔开,如:2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b
  • IP地址分类方式2:公网地址(万维网使用) 和 私有地址(局域网使用)。
  • 192.168.开头的就是私有地址,范围即为 192.168.0.0 ~ 192.168.255.255,专门为组织机构内部使用
//获得IP地址
InetAddress inetAddresses2 = InetAddress.getByName("192.168.8.123");
//getHostName
System.out.println(inetAddresses2.getHostName());
//getHostAddress
System.out.println(inetAddresses2.getHostAddress());
//Canonical : 规范的
System.out.println(inetAddresses2.getCanonicalHostName());

域名解析:?现在本机的hosts文件,判断是否有输入的域名地址,没有的话,再通过DNS服务器,找主机。

3. 端口号

  • 端口号标识正在计算机上运行的进程(程序)
  • 不同的进程有不同的端口号,用来区分软件
  • 被规定为一个16位的整数 0~65535
  • TCP 和 UDP 各有 65535个端口,单个协议下端口不能冲突
  • 端口分类:

公认端口: 0~1023。被预先定义的服务通信占用端口。
HTTP 默认端口 : 80
HTTPS 默认端口:443
FTP 默认端口: 21
Telnet 默认端口:23
注册端口:1024~49151、分配给用户进程或应用程序。
tomcat 默认端口:8080
Mysql 默认端口:3306
Oracle 默认端口:1521
动态、私有端口:49152~65535

4. 通信协议:

TCP/IP协议簇

  • 传输层协议中有两个非常重要的协议:

用户传输协议 TCP (Transmission Control Protocol)
用户数据报协议UDP(User Datagram Protocol)

  • Tcp/IP 以其两个主要协议:

传输控制协议:TCP,和网络互联协议:IP,而得名,实际上是一组协议,包括多个具有不同功能且互为关联的协议。

IP(Internet Protocol)协议是网络层的主要协议,支持网间互联的数据通信。
TCP/IP协议模型从更实用的角度出发,形成了高效的四层体系结构,即物理链路层,IP层,传输层和应用层

TCP协议:类似于打电话

UDP协议:类似于发短信

DDOS洪水攻击

三、网络编程

1. TCP编程

客户端:Socket

//客户端
package com.kuang.lesson2;
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
//客户端
public class TcpClientDemo01 {
 ? ?public static void main(String[] args) {
 ? ? ? ?Socket socket = null;
 ? ? ? ?OutputStream os = null;
 ? ? ? ?try {
 ? ? ? ? ? ?//1. 连接服务器的地址
 ? ? ? ? ? ?InetAddress serverIP = InetAddress.getByName("127.0.0.1");
 ? ? ? ? ? ?int port = 8899;
 ? ? ? ? ? ?//2. 创建一个Socket
 ? ? ? ? ? ?socket = new Socket(serverIP,port);
 ? ? ? ? ? ?//3. 创建一个输出流,向外写东西
 ? ? ? ? ? ?os = ?socket.getOutputStream();
 ? ? ? ? ? ?os.write("你好,欢迎学习狂神说Java".getBytes());
 ? ? ?  } catch (UnknownHostException e) {
 ? ? ? ? ? ?e.printStackTrace();
 ? ? ?  } catch (IOException e) {
 ? ? ? ? ? ?e.printStackTrace();
 ? ? ?  } finally {
 ? ? ? ? ? ?//4. 关闭资源
 ? ? ? ? ? ?try {
 ? ? ? ? ? ? ? ?if (os!=null){
 ? ? ? ? ? ? ? ? ? ?os.close();
 ? ? ? ? ? ? ?  }
 ? ? ? ? ? ? ? ?if (socket!=null){
 ? ? ? ? ? ? ? ? ? ?socket.close();
 ? ? ? ? ? ? ?  }
 ? ? ? ? ?  } catch (IOException e) {
 ? ? ? ? ? ? ? ?e.printStackTrace();
 ? ? ? ? ?  }
 ? ? ?  }
 ?  }
}

服务端:Servsocket

//1. 开放服务器端口,创建ServerSocket
serverSocket = new ServerSocket(8899);
//2. 等待客户端的连接
accept = serverSocket.accept();
//3. 读入客户端的消息,
is = accept.getInputStream();

2. UDP编程

发送端

//1. 建立DatagramSocket
DatagramSocket socket = new DatagramSocket();
//2. 封装数据包
?String msg = "UDPSender==>";
byte[] data = msg.getBytes();
InetAddress inet = InetAddress.getByName("127.0.0.1");
int port = 9090;
DatagramPacket packet = new DatagramPacket(data,0,data.length,inet,port);
//3. 通过 Socket 发送 packet
socket.send(packet);
//4. 关闭socket
socket.close();

接收端

?//1. 建立DatagramSocket,开放端口
DatagramSocket socket = new DatagramSocket(9090);
?//2. 接收数据
byte[] buffer = new byte[1024];
DatagramPacket packet = new DatagramPacket(buffer,0,buffer.length);
socket.receive(packet);
//3. 输出数据
// packet.getData() : 获取packet中的数据
System.out.println(new String(packet.getData(), 0, packet.getLength()));
//4. 关闭socket
socket.close();

3. URL编程

URL 的 基本结构由 5部分组成:

传输协议://主机名:端口号/文件名 #片段名?参数列表

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-07-15 16:36:12  更:2021-07-15 16:38:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/6 15:03:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码