网络编程
2022/1/14 11:35:05
本文主要是介绍网络编程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
网络编程
1.1 概述
计算机网络
计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。
网络编程目的
传播信息(数据交换、通信)
1.2 网络通信的要素
-
IP 和 端口号
-
网络通信协议
1.3 IP
-
唯一定位一台网络上计算机
-
127.0.0.1:本机localhost
-
ip地址的分类(IPV4 / IPV6)
-
域名:记忆IP问题
1.4 端口
端口表示计算机上的一个程序的进程
-
不同进程有不同端口号,用于区分软件
-
被规定 0 - 65535
-
(TCP) (UDP) 单个协议下,端口号不能冲突
-
端口分类
-
公用端口 0 - 1023
-
HTTP: 80
-
HTTPS: 443
-
FTP: 21
-
-
程序注册端口 1024 - 49151,分配给用户或者程序
-
Tomcat: 8080
-
MySQL: 3306
-
Oracle: 1521
-
-
动态、私有端口 49152 - 65535
netstat -ano #查看所有端口 netstat -ano|findstr "端口号" #查看指定端口 tasklist|findstr "PID" #查看指定端口进程 Ctrl + Shift + Esc 快速打开任务管理器
-
1.5 通信协议
TCP/IP协议组:实际上一组协议
TCP:打电话
-
连接,稳定
-
三次握手 四次挥手
A:你瞅啥 B:瞅你咋地 A:干一场 A:我要走了 B:你真的要走了吗 B:你真的真的要走了吗 A:我真的要走了
UDP:发短信
-
不连接,不稳定
1.6 TCP
客户端
-
连接服务器Socket
-
发送消息
//1.连接服务器 //获取服务端IP和端口号 InetAddress serverIP = InetAddress.getByName("localhost"); int port = 9999; //创建一个Socket连接 socket = new Socket(serverIP, port); //2.发送消息 os = socket.getOutputStream(); os.write("客服端向服务端发送消息".getBytes());
服务端
-
建立服务的端口
-
等待用户的连接
-
接受用户的消息
//1.创建服务的端口 serverSocket = new ServerSocket(9999); while (true) { //2.等待用户的连接 socket = serverSocket.accept(); //3.接受用户的消息 is = socket.getInputStream(); byte[] buffer = new byte[1024]; int len; baos = new ByteArrayOutputStream(); while ((len = is.read(buffer)) != -1) { baos.write(buffer, 0, len); } System.out.println(baos); }
Tomcat
服务端
-
自定义 S
-
Tomcat服务器 S :Java后台开发
客户端
-
自定义 C
-
浏览器 B
1.7 UDP
发送端
public class SendDemo01 { public static void main(String[] args) throws IOException { //1.创建数据包Socket DatagramSocket socket = new DatagramSocket(9998); //2.创建数据报包 String massage = "数据报包"; DatagramPacket packet = new DatagramPacket(massage.getBytes(), 0, massage.getBytes().length, InetAddress.getByName("127.0.0.1"), 9999); //3.发送数据报包 socket.send(packet); //4.关闭资源 socket.close(); } }
接收端
public class ReceiveDemo01 { public static void main(String[] args) throws IOException { //1.创建服务的端口 DatagramSocket socket = new DatagramSocket(9999); //2.接收数据报包 byte[] buffer = new byte[1024]; DatagramPacket packet = new DatagramPacket(buffer, 0, buffer.length); socket.receive(packet); //3.输出数据报包 System.out.println(packet.getAddress().getHostAddress()); System.out.println(new String(packet.getData(), 0, packet.getLength())); //4.关闭资源 socket.close(); } }
1.8 URL
统一资源定位符:定位资源(本地,互联网)
DNS域名解析
协议://ip地址:端口/项目名/资源
这篇关于网络编程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-11有哪些好用的家政团队管理工具?
- 2025-01-11营销人必看的GTM五个指标
- 2025-01-11办公软件在直播电商前期筹划中的应用与推荐
- 2025-01-11提升组织效率:上级管理者如何优化跨部门任务分配
- 2025-01-11酒店精细化运营背后的协同工具支持
- 2025-01-11跨境电商选品全攻略:工具使用、市场数据与选品策略
- 2025-01-11数据驱动酒店管理:在线工具的核心价值解析
- 2025-01-11cursor试用出现:Too many free trial accounts used on this machine 的解决方法
- 2025-01-11百万架构师第十四课:源码分析:Spring 源码分析:深入分析IOC那些鲜为人知的细节|JavaGuide
- 2025-01-11不得不了解的高效AI办公工具API