分层
计算机网络如果分七层,那么是:
物理层
数据链路层
网络层
传输层
会话层
表示层
应用层
TCP/IP 四层:
物理层(包括物理层和数据链路层)
网络层
传输层
应用层(包括会话层,表示层和应用层)
顺口溜:物数网传会表应
端口号:
每个进程有不同的端口号,操作系统分配进程,使资源分配更高效
url
URL:统一资源定位符
HTTPS + ip地址 + port(端口) :
https://321.213.213:8080?请求参数
传输层: TCP 和 UDP
三次握手:
1、客户端请求创建连接
2、服务端确定是否建立连接
3、客户端重新确认
四次挥手:
1、客户端请求断开连接
2、服务端检查是否有未完成的任务
3、客户端是否所有任务都完成
4、确定都完成,断开连接
下列代码是使用 UDP 进行发送,只管是否发送成功,但是不管是否正常接收到
以下是发送端
使用 端口 9090 进行发送,发送数据 bytes 给 localhost 下的端口 '9999’
public class HelloClient {
public static void main(String[] args) throws IOException {
DatagramSocket ds = new DatagramSocket(9090);
byte[] bytes = "abdsad".getBytes();
DatagramPacket dp = new DatagramPacket(bytes, bytes.length, new InetSocketAddress("localhost", 9999));
ds.send(dp);
ds.close();
}
}
以下是接收端
一开始堵塞,当接受到数据的时候,打印接受的 dp 即可
public class Hello {
public static void main(String[] args) throws IOException {
DatagramSocket ds = new DatagramSocket(9999);
byte[] b = new byte[1024];
// 数据报
DatagramPacket dp = new DatagramPacket(b, b.length);
ds.receive(dp);
String s = new String(dp.getData(), 0, dp.getLength());
System.out.println(s);
ds.close();
}
}