1.网络编程的两个主要问题:
1.如何准确定位目标主机(一台或多台)
2.定位后如何通信(采用怎样的通信协议)
2.网络编程的要素:
1.IP地址和端口号
2.网络通信协议
3.运用Java万物皆对象的思想,找到能实现以上问题的类和方法
net包下InetAddress类中
IP
IP唯一定位一台网络上计算机
127.0.0.1 :本机localhost
ip地址的分类
1.通过IP地址分类: ipv4/ipv6
ipv4: 例127.0.0.1 ,由4个字节组成,每个字节的长度是0~255 大概有42亿个
ipv6: fe80:00de:80c1:436a:5c9:e418:dw12:97dh 128位 8个无符号整数来表示的
2.通过公网(互联网)-私网(局域网)进行分类
192.168.XX.XX专门给组织内部使用的局域网
IP地址根据网络的标识长度分为A类8位B类16位C类24位D类多播地址
端口
计算机上每一个程序的进程都有一个端口号,IP相当于一栋大楼,端口号相当于每一户的门牌号
不同的进程有不同的端口号,用来区分软件
端口号分为TCP端口和UDP端口
TCP 0~65535
UDP 0~65535
单个协议下端口号不能冲突,但TCP 和UDP端口号相同时并不冲突,因为是在两种协议下各运行各的
端口分类
公有端口0~1023
HTTP:80
HTTPS:443
FTP:21
Telent:23
程序注册端口:1024~49151,分配给用户或者程序
Tomact 默认端口:8080
MySQL 默认端口:3306
Oracle 默认端口:1521
动态、私有端口:49152~65535
DOS命令
netstat -ano //查看所有的端口
netstat -ano|findstr"5900" //查看指定的端口
tasklist|findstr"7740" //查看指定端口的进程
通信协议
网络通信协议:速率,传输码率,代码结构,传输控制.....
传输层:TCP/IP协议簇中重要的协议:
TCP:用户传输协议 (打电话,对方接通了才能传输)
连接,稳定
三次握手(A发问-B回应-A建立连接),四次挥手(A:我要断开了-B你真的要断开了吗-B你真的真的要断开了吗-A我断开了)
两端进行连接
传输完成,释放连接,效率低
TCP聊天:
客户端:
1.连接服务器Socket
2.发送消息
服务器:
1.建立服务的端口ServerSocket
2.等待用户的连接accept
3.接收用的消息
TCP传输文件:
UDP:用户数据报协议 (发短信,不管对方收没收到)
不连接,不稳定
没有明确界定的客户端和服务端,都是之间互相发包
不管有没有准备好都能发送
DDOS同理:攻击不停发包造成端口堵塞
URL 统一资源定位符
包括三部分