网络:将不同区域的计算机连接到一起 (局域网、域域网、互联网)
地址:IP地址 确定网络上的一个绝对地址
端口号:区分计算机软件 相当于房门 2个字节
- 在同一个协议下,端口号不能重复
- 1024以下的不要使用 80 http、21 ftp
资源定位:URL 统一资源定位符 URI:统一资源
数据的传输:
- TCP协议:一种面向连接的、可靠的、基于字节流的运输层通信协议。例如电话
- 面向连接
- 点到点的通信
- 高可靠性
- UDP协议:一种无连接的传输层协议,提高面向事务的简单不可靠信息传输服务。例如发送短信
- 非面向连接
- 传输不可靠
- 数据可能发生丢失
传输:
- 先封装
- 再拆封
涉及的类:
- InetAddress InetSocketAddress
- InetAddress 封装计算机的ip地址和DNS,没有端口
- InerSocketAddress 包含端口,用于socket通信的
- InetAddress 封装计算机的ip地址和DNS,没有端口
- UPL
- 四部分组成:协议、存放资源的主机域名、端口、资源文件名
- 创建:URL(String spec) 绝对路径构建 URL(URL context,String spec)相对路径构建
public class Demo01 { public static void main(String[] args) throws MalformedURLException { //绝对路径构建 URL url=new URL("http://www.baidu.com:80/index.html#aa?uname=bjsxt"); //#aa锚点 System.out.println("协议:"+url.getProtocol()); System.out.println("域名:"+url.getHost()); System.out.println("端口:"+url.getPort()); System.out.println("资源:"+url.getFile()); System.out.println("相对路径:"+url.getPath()); System.out.println("锚点:"+url.getRef()); System.out.println("参数:"+url.getQuery()); //?参数 存在锚点返回null 不存在返回正确 //相对路径构建 url=new URL("http://www.baidu.com:80/a/"); url=new URL(url,"b.txt");//相对路径 System.out.println(url.toString()); } }
- TCP:ServerSocket Socket
- UDP:DatagarmSocket DatagramPacket