网络编程概述
什么是计算机网络
把不同区域的计算机(广义上的),通过通信设备和线路连接起来,可以实现数据的传输和共享的系统。
实现不同计算机之间联系,必须有介质连接
最开始在一间办公室
后来一栋楼
一个城市
一个国家
全球
网络是干什么
聊天 --> 聊天软件 qq
Java语言是支持网络间的数据传输,将底层的细节封装起来,给程序员提供了一套标准的类库,很方便使用Java语言开发出可以进行网络通信的软件。
借助计算机网路,实现我们所写的程序,在不同的电脑上,可以进行数据传输。
网络编程核心问题:
如何找到网络世界中的目标主机,以及目标软件
win+r cmd ipconfig 查看自己电脑的ip
如何安全可靠的进行数据传输 协议 规则
网络的一些基本知识
网络模型
OSI参考模型,是一个理想化的标准模型
分成7层
实际上的使用Tcp/ip网络模型
分成4层
应用层(http)
运输层(协议)
网络层(IP)
物流链路层(硬件设备)
网络传输数据为什么要分层
在不同的层中,对数据加入的不同的头(协议,ip)
逐层分工处理
通信要素:ip 端口 协议
目标主机,以及目标软件
IP:在网络世界中,是计算机的地址
局域网地址 192.168.1.20 链接到路由器,会自动分配ip
广域网地址:家里的宽带 与外界连接
本机地址:本地回环地址 127.0.0.1
端口:是计算机中运行中的程序的编号,对应的是程序
ip找主机
端口找程序
ip+端口 找到目标计算机 以及你想要的程序
端口号0-65535之间 由于0-1024被一些系统程序使用
所以我们开发的程序可以从1024-65535区间定义,
但是不能与已有的端口冲突
如何安全传输--通信协议
为了安全可靠的进行数据传输,需要对传输的内容,速率,出错之后的处理办法等进行控制,而制定的一些规约,,称为协议。
传输层有两个主要的协议:
TCP(Transmission Control Protocol 传输控制协议):
使用TCP协议进行数据传输前,必须先要去检测网络是否通常,客户端是否能连接到服务器端。如果能连接到,则进行数据传输,如果连接不到,会报错。采用的是3次握手的机制。
TCP是可靠的,相对udp效率低
UDP(User Datagram Protocol 用户数据报协议):
将数据封装数据报
数据报包含 数据 自己的ip 目标ip
发送前不需要建立连接,直接发送 例如发射导弹(目标坐标)
是否发送成功,不清楚,不知道
是不安全的,但是效率高
Java中的两种协议下的编程
基于TCP协议的编程
服务器端:
ServerSocket serverSocket = new ServerSocket(9999);
Socket socket = serverSocket.accept();
客户端:
Socket socket = new Socket("127.0.0.1",9999);
socket.getInputStream();
socket.getOutputStream();
TCP与UDP的区别
于 2023-12-10 08:57:45 首次发布