网络编程
IP(Internet Protocol):网络之间互连的协议也就是为计算机网络相互连接进行通信而设计的协议。任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通。
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地址
端口:端口是虚拟的概念,并不是说在主机上真的有若干个端口。通过端口,可以在一个主机上运行多个网络应用程序。每个应用程序使用不同的端口,范围0~~65535。每一个协议拥有自己的端口,相同的协议下端口不能重复。端口自定义越大越好,8000以上,8000以内预留端口号。
特殊的端口号:
80: http
8080: tomcat
1521: Oracle端口号
3306: mysql端口号
java.net.InetSocketAddress类实现了IP套接字地址(IP 地址 + 端口号)。
URL (Uniform resource identifier):统一资源定位符,用来唯一的标识一个资源,是指向互联网“资源”的指针。 。
互联网的三大基石: html http url
例:http://www.baidu.com:80/index.html?name=zhangsan&age=123#a
协议:http
域名:www.baidu.com
端口:80 默认80
资源:index.html?name=zhangsan&age=123#a
网络协议
TCP(transfer control protocol):面向连接,安全,效率低,开销大。
例:打电话的步骤:1.拨号2.回访:响应3.发送数据,基于IO传输数据
UDP(UserDatagramProtocol ):非面向连接,不安全,效率高协议简单,开销小,大小有限制一般不超过60k。例:发短信。
应用层如何与传输层进行沟通?通过Socket套接字。套接字是一种进程间的数据交换机制。这些进程既可以在同一机器上,也可以在通过网络连接的不同机器上。面向Socket编程,Socket相当于插座,是两层之间沟通的接口,不同协议Socket的实现不一样。
UDP如何实现Socket编程: 发送端和接收端是平等的
DatagramSocket 此类表示用来发送和接收数据报包的套接
DatagramPacket 此类表示数据报包。
UDP基本流程:接收端(服务器)
1.创建接受端,指定接受端端口 DatagramSocket 类 +指定端口
2.准备字节数组,用来存储接收收据的
3.把字节数组打包
4.阻塞式接收
5.处理数据
6.释放资源
UDP基本流程:发送端(客户端)
1.创建发送端,指定发送端端口 DatagramSocket 类 +指定端口
2.准备数据,转为字节数组
3.把数据打包,指明接收端(即服务器)的地址和端口号 DatagramPacket
4.发送数据,从此套接字发送数据报包。
5.释放资源
TCP基本流程:服务端
1.构建服务端,指定服务端端口 ServerSocket/ServerSocket(int port)
2.阻塞式监听 Socket accept()
3.一个客户端就是一个socket,IO操作
TCP基本流程:客户端
1.创建客户端 Socket 指定服务端的IP和端口
2.IO操作 返回此套接字的输出流 getOutputStream()