一、相关概念
1、IP
唯一标识Internet上的计算机
分类方式1:IPV4和IPV6
- IPV4:4个字节组成,4个0~255,中间用小数点隔开,如192.168.0.1
- IPV6:128位(16个字节)组成,8组无符号整数,中间用冒号隔开,如3ffe:3201:1401:1280:c8ff:fe4d:db39:1984
分类方式2:公网地址(万维网)和私网地址(局域网),192.168.开头的就是私有地址
在Java中对应的类是InetAddress
本地地址:127.0.0.1对应域名是localhost
2、端口
标识计算机运行的进程
不同的进程有不同的端口号
端口号是一个16位的整数,范围0~65535
分类如下
公认端口:0~1023,被预先定义的服务通信占用。如HTTP占用80,FTP占用21
注册端口:1024~49151,分配给用户进程或应用程序。如Tomcat占用8080,MySQL占用3306,Oracle占用1521
动态/私有端口:49152~65535
端口号与IP地址组合成一个网络套接字:Socket
3、网络协议
网络协议即网络通信中的一些约定。传输层的两个重要协议:TCP和UDP
1)TCP
- 使用TCP协议前,需建立TCP连接,形成数据传输通道
- 传输前,要进行”三次握手”
- TCP的两个应用进程:客户端、服务端
- 连接中可以进行大量数据的传输
- 传输完成需要释放连接,效率低
2)UDP
- 不建立连接
- 每个数据报限制在64K内
- 只管发送,不管对方是否接收到
- 可以广播发送
- 发送结束不释放资源,速度快
二、TCP和UDP编程
1、TCP
1)例题1
需求:客户端向服务端发送数据,服务端打印到控制台上
1 | public class TCPTest { |
2)例题2
需求:客户端向服务端发送文件,服务端把文件保存在硬盘上
1 | public class TCPTest2 { |
3)例题3
需求:在例题2的基础上,服务端反馈”接收完成”给客户端
1 | public class TCPTest3 { |
2、UDP
1 | public class UDPTest { |
三、相关链接
本文作者: P5.
本文链接: https://p5r-chihaya.github.io/2019/10/06/【学习笔记】Java笔记9:网络编程/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!