- 网业编程:上层的应用
- 网络编程:底层,关注数据如何传输,如何存储
- 节点:网络电子设备,节点与节点之间组成网络
- IP:表示节点
- 端口:区分不同的软件
- URL:互联网中资源的指针,统一资源定位符
- 协议:合同,标准,规范
- 传输层协议:
- UDP:相当于写信 ?只管写只管发 ?效率高 ??不安全 ?大小存在限制
- TCP:相当于打电话 ?面向连接 ?安全性高 ?效率低 ??大小没有限制 ?
- IP:
- 定义网络中的节点 (网络电子设备,手机,电脑,路由器...)
- 分为 : IPV4(4个字节,32位) ?IPV6 (128位)
- 192.168.0.0~192.168.255.255 ?非注册IP,供组织内部使用
- 127.0.0.1 本地IP
- localhost : 本地域名
- 域名与IP之间的关系: ?DNS解析器
- java.net包
- InetAddress ?类表示Internet协议(IP)地址
- 端口:区分软件
- 端口号2个字节 0~65535
- 同一协议下端口号不能冲突
- 建议使用8000以上的,8000以下称为预留端口
- 常见的端口:
- 80:http
- 8080:tomcat
- 1521:orcle
- 3360:Mysql
- InetSocketAddress 此类实现IP套接字地址(IP地址+端口号)它也可以是一对(主机名+端口)
- URL:统一资源定位符,指向万维网上的“资源”的指针。
- 组成:
- ?协议: http
- 域名: www.baidu.com
- ?端口号: 80
- 资源: index.html
- 提交数据: name=zhangsan&pwd=123
- ?锚点: #a
- 互联网 的三大基石:
-
- UDP实现接收端: 基本流程
- 定义我是接收端
- 准备字节数组,打包
- 接收数据
- 处理数据
- 关闭
- 注意:??统一协议下端口号不能冲突
- 套接字:
- 传输层为应用层开辟的小口子
- 不同协议下Socket实现不同
- ?UDP与TCP协议对Socket实现
- UDP : 相当于写信|有包裹|发短信,非面向连接,协议简单,开销小,效率高 ??不安全 ???大小由限制(一般不超过60k)
- TCP : 相当于打电话,面向连接,效率低,安全,大小没有限制
- UDP协议下发送端与接收端两端平等
- DatagramSocket ?此类表示用于发送和接收数据报包的套接字。
- DatagramSocket(int port) 构造一个数据报套接字并将其绑定到本地主机上的指定端口。
- void receive(DatagramPacket p) 从此套接字接收数据报包。
- void send(DatagramPacket p) 从此套接字发送数据报包。
17.DatagramPacket 该类表示数据报包。
-
- ?byte[] getData() 返回数据缓冲区。
- int getLength() 返回要发送的数据的长度或接收的数据的长度。
- 数据的传输基于字节数组
-
- UDP实现发送端: 基本流程
- 定义我是发送端
- 准备数据
- 打包
- 发送
- 关闭
- 客户端 ?Socket
- Socket(String host, int port) 创建流套接字并将其连接到指定主机上的指定端口号。
- ?getInputStream()
- ??getOutputStream()
- 服务器 ?ServerSocket 该类实现服务器套接字。
- ?ServerSocket(int port) 创建绑定到指定端口的服务器套接字。
- Socket accept() 侦听对此套接字的连接并接受它。
- tcp协议实现基本流程 : 客户端
- 定义我是客户端-->指定要请求的服务器的IP+端口
- 准备数据
- 获取输出流
- 输出-->IO操作
- 刷出
- 关闭
- tcp协议实现基本流程 : 服务端
- 定义我是服务端
- 阻塞式监听
- 获取输入流-->接收客户端的请求数据
- 处理数据
- 关闭
|