图文详解之网络编程!
1.网络编程
- 什么是网络编程
- 多台计算机连接形成网络
- 网络的作用
- 数据交互
- 数据共享
2.网络三要素
- 网络协议:双方实体完成通信或服务所必须遵循的规则和约定
-
应用层: http,ftp,smtp等
传输层: TCP udp
网络层: ip
数据链路层: 网卡
物理层: 物理连接
-
-
Ip: 设备在网络中的唯一标识(逻辑)。
-
端口: 逻辑上用于区分服务的端口(每个服务都会监听特定的端口) 0-65535
80端口:http服务
3306端口: mysql服务
21:ftp端口
1521:oracle服务
8080:tomcat服务
3.其他概念
- DNS服务器:服务器: 域名和IP地址之间映射关系的服务器。根据域名获取ip地址的过程称为域名解析
- url:统一资源定位符。(定位资源的地方),协议://ip:端口/资源路径?参数
4.网络编程介绍
- Java.net.InetAddress
//1.获取本机的IP地址
InetAddress inetAddress = InetAddress.getLocalHost();
//本机主机名称
String hostName = inetAddress.getHostName();
//ip地址字符串
String ip = inetAddress.getHostAddress();
System.out.println(hostName+":"+ip);
//获取指定域名的ip
InetAddress ia2 = InetAddress.getByName("192.168.5.132");
System.out.println(ia2.getHostName()+":"+ia2.getHostAddress());
//获取所有处理该请求的服务器ip地址
InetAddress[] ias = InetAddress.getAllByName("www.baidu.com");
for (InetAddress inet2 : ias) {
System.out.println(inet2.getHostName()+":"+inet2.getHostAddress());
}
- 网络编程
- Socket(套接字)编程
- 发送和接收信息的端口(接口)
5.Tcp/Udp(传输层)
- Udp
- 面向无连接不可靠协议
- 特点:快
- TCP
- 面向连接的可靠协议。先建立连接,形成传输通道才能通信,适合大数据量而且对数据要求较高的场景使用。
- 速度慢。
- 建立连接: 三次握手
- Client/server: 请求响应模式
- 客户端首先发送请求给服务器端(SYN)
- 服务器返回响应(SYN+ACK(确认))
- 发送ACK给服务器端,此时建立连接。
- Client/server: 请求响应模式
- Tcp协议的socket
- 客户端(Socket)
- 明确服务器端ip地址和端口,建立连接。
- 发送数据给服务器端
- 释放资源
- 服务器端(ServerSocket)
- 确定监听端口
- 获取客户端连接(建立连接)
- 获取客户端发送的数据
- 释放资源(服务器一般不用关闭)
- 客户端(Socket)