网络编程
IP: 定义网络上的不同节点(手机,电脑,路由器…)
- IPv4:32位 IPV6:128位
- 非注册IP地址(公司内部使用): 192.168.0.0 ~ 192.168.255.255
- 特殊的IP:
-
127.0.0.1 本地IP
-
1ocalhost 本机域名
-
DNS域名解析器
- java.net 类 InetAddress 此类表示互联网协议 (IP) 地址。
-
static InetAddress getLocalHost() 返回本地主机。
-
static InetAddress getByName(String host) 在给定主机名的情况下确定主机的 IP 地址
端口: 区分软件的
- 定义端口 2个字节 0~65535
- 相同的协议下端口不能冲突
- 端口自定义越大越好,8000以上,8000以内预留端口号
- 特殊的端口号:
-
80: http
-
8080: tomcat
-
1521: Oracle端口号
-
3306: mysql端口号
- INetSocketAddress 此类实现 IP 套接字地址(IP 地址 + 端口号)
URL: 统一资源定位符|器
- 互联网的三大基石: html http url
- 协议:http
- 域名:www.baidu.com
- 端口:80 默认80
- 资源:index.html?name=zhangsan&age=123#a
- http://www.baidu.com:80/index.html?name=zhangsan&age=123#a
- URL URL 代表一个统一资源定位符,它是指向互联网“资源”的指针。
UDP协议
- UDP基本流程:接收端
- 1.构建接受端,指定接受端端口
- 2.准备字节数组,用来存储接口收据的
- 3.把字节数组打包
- 4.阻塞式接收
- 5.处理数据
- 6.关闭
协议: 规范 合同
- udp :非面向连接的 写信 ,不安全,效率高,协议简单,开销小,大小有限制一般不超过60k
- tcp :面向连接的 打电话 ,安全,效率低,开销大 3次握手:1.拨号 2.回访:响应 3.发送数据 ,基于IO穿出数据
- 应用层如何与传输层进行沟通?
-
通过Socket套接字
-
面向Socket编程,Socket相当于插座,是两层之间沟通的接口,不同协议,Socket的实现不一样
- udp如何实现Socket编程: 发送端和接收端是平等的
-
DatagramSocket 此类表示用来发送和接收数据报包的套接字
-
DatagramSocket(int port)
-
DatagramPacket 此类表示数据报包。
- UDP基本流程:发送端
-
1.创建发送端,指明发送端的端口
-
2.准备数据,转为字节数组
-
3.把数据打包 指明接收端的地址和端口号 DatagramPacket
-
4.发送数据
-
5.关闭
TCP协议
tcp基本流程:服务端
- 1.构建服务端 ServerSocket 指定端口 ServerSocket(int port)
- 2.阻塞式监听 Socket accept()
- 3.一个客户端就是一个socket IO操作
- 4.关闭