目录
网络编程三要素与InetAddress类的使用
软件架构
面临的主要问题
网络编程三要素(对应三个问题)
InetAddress的使用
TCP与UDP协议剖析与TCP编程案例(了解)
TCP协议
UDP协议
例子
UDP、URL网络编程
URL:(Uniform Resource Location):统一资源定位符
想说的话
网络编程三要素与InetAddress类的使用
软件架构
- C/S架构:全称Client/Server结构,(客户端)
- B/S架构:全称Browser/Server结构,(浏览器)
面临的主要问题
- 问题1:如何准地定位网络上一台或多台主机
- 问题2:如何定位主机上的特定的应用
- 问题3:找到主机后,如何可靠、高效地进行数据传输
网络编程三要素(对应三个问题)
- 要素1:IP地址
- 作用:IP地址用来给网络中的一台计算机设备做唯一的编号
- 分类:
- 分类方式1:IPv4(占用4个字节)和IPv6(占用16个字节)
- 分类方式2:公网地址(万维网使用)和私有地址(局域网使用,以192.168开头)
- 本地回路地址:127.0.0.1
- 域名:便捷的记录ip地址:比如: www.bilibili.com等
- 要素2:端口号
- 可以唯一的标识主机中的进程(应用程序)
- 不同的进程分配不同的端口号
- 范围:0~65535
- 要素3:通信协议
- 目的:为了实现可靠而高效的数据传输
- 网络参考模型
- OSI参考模型:将网络分为7层,过于理想化,没有实施起来
- TCP/IP参考模型:将网络分为4层:应用层、传输层、网络层、物理+数据链路层。事实上使用的标准
- 总结
- 使用IP地址(准地定位网络上一台或多台主机)
- 使用端口号(定位主机上的特定的应用)
- 规范网络通信协议(可靠、高效地进行数据传输)
InetAddress的使用
- 作用:InetAddress类的一个实例就代表一个具体的ip地址
- 实例化的方式
- getByName( ):获取指定IP对应的InetAddress的实例
- getL ocalHost ( ):获取本地IP对应的InetAddress的实例
- 两个常用方法:getHostAddress()/getHostName
TCP与UDP协议剖析与TCP编程案例(了解)
TCP协议
- 进行通信的两个进程:客户端和服务端
- 使用TCP协议前,必须先建立TCP连接,形成基于字节流的传输数据通道
- 传输前:“三次握手”,是可靠的。(还有重发机制)
- 在连接中可进行大数据量的传输
- 传输完毕,需释放已建立的连接,效率低
- 例子:打电话
- 有三次握手,四次挥手(都是用来建立连接的)
UDP协议
- 进行通信的两个进程:发送端和接收端
- 不需要建立连接
- 是不可靠的
- 每个数据报大小限制在64k以内
- 发送数据结束时:无需释放资源,开销小,通信效率高
- 例子:发短信
例子
Socket类:包括IP和端口号
- 例子1:客户端发送内容给服务器,服务器将内容打印到控制台上
- 例子2:客户端发送文件给服务端,服务端将文件保存本地
- 客户端
- 1.创建Socket(指明对方的IP地址和端口号 )
- 2.创建File实例,FileInputStream的实例
- 3.通过Socket,获取输出流
- 4.关闭Socket和相关流
- 服务端
- 1.创建ServerSocket
- 2.接受来自于客户端的socket:accept()
- 3.通过Socket获取一个输入流
- 4.创建File类实例,FileOutputStream的实例
- 5.读写过程
- 6.关闭相关的Socket和相关流
- 客户端
- 例子3:客户端发送文件给服务端,服务端将文件保存本地,并返回“发送成功”给客户端,并关闭相应的连接
- 在例子2的基础上
UDP、URL网络编程
UDP不用当作重点
URL:(Uniform Resource Location):统一资源定位符
作用:一个具体的url就对应着互联网上某一资源的地址
格式:
- http://localhost:8080/examples/abcd.jpg——>“万事万物皆对象”
- 应用层协议 IP地址 端口号 资源地址
URL类的实例化和常用方方法
想说的话
本章所有内容在先学习阶段都不是特别重要(除了URL),所以不用担心不理解,了解一遍即可。