最后更新:2022-08-03 07:36:00 手机定位技术交流文章
经过前面的课程,我们已经掌握了多线性的知识,我不知道每个人都知道吗?如果你有,今天我们开始学习Java中的网络编程,网络编程是什么?网络编程允许程序与网络上的其他设备的数据交互。常见的通信模式有两种形式:Client-Server(CS)、Browser/Server(BS)。接下来,我们将学习网络通信的三个要素:UDP通信、TCP通信。
关键的三要素:
(在通信过程中,终端通过IP地址寻找设备来确定该设备中的应用程序程序。
IP地址形式:
IP常用命令:
特殊IP地址:
InetAddress通用API
| 名称 | 说明 |
| public static InetAddress getLocalHost() | 返回主机地址对象 |
| public static InetAddress getByName(String host) | 获取指定的主机IP地址对象,参数是域名或IP地址 |
| public string getHostName() | 获取此IP地址的主机名称 |
| public string getHostAddress() | 返回IP地址字符串 |
| public boolean isReachable(int timeout) | 在指定的毫秒内与与IP地址对应的主机连接,连接返回真 |

端口代码: 识别在计算机设备上运行的进程,指定为 16-bit 双进制, 范围为 0-65535.
端口类型为0-1023,具有预定义的已知应用程序职业(例如HTTP职业80、FTP职业21)。
注册端口: 1024-49151,分配给用户进程或某些应用程序(例如,Tomcat占用8080,MySQL占用3306)。
动态端口:49152-65535称为动态端口,因为它们通常不分配一个固定进程,而是动态。
注意:我们开发的程序选择注册端口,而两个程序的端口数不能在一个设备中相同,否则会发生错误。
传输层有两个共同的协议:
TCP 协议特点:
TCP协议通信场景:
UDP 协议:
UDP协议通信场景:
语言调用 、 视频调用等.

DatagramPacket:数据包对象
| 构造器 | 说明 |
| public DatagramPacket(byte[ ]buf,int length,InetAddress address,int port) | 创建发送端数据包对象 buf:要发送的内容,字节数 长度:发送内容的字节的长度 地址:收件人 IP地址对象 端口:接收机的端口号码 |
| public DatagramPacket(byte [ ] buf, int length ) | 创建接收器数据包对象 buf:用于存储接收器的内容 长度:可以接收的内容的长度 |
DatagramSocket:发送者和接收者对象
| 构造器 | 说明 |
| public DatagramSocket( ) | 在发送端创建一个接口对象,系统将随机分配一个端口号码 |
| public DatagramSocket(int port) | 创建接收端口对象并指定端口号 |
| 方法 | 说明 |
| public void send (DatagramPacket dp) | 发送数据包 |
| public void receive (DatagramPacket p) | 接收数据包 |
为了更好地理解DatagramSocket和DatagramPacket,我们可视化UDP图像作为在线购买.其中DatagramPacket就代表我们想要网购的商品,虽然这是我们买的,但是我们肯定没有办法自己把货物带走,因此,需要快速运输,DatagramSocket扮演这个角色。 merchants需要通过DatagramPacket邮寄包装的货物,然后,货物通过Express Datagram Socket向买方交付。
注:服务端需首先启动,然后等待客户端将数据发送到服务端。

Socket
| 构造器 | 说明 |
| public Socket(String host , int port) | 在发送端创建一个接口对象,连接到服务端,参数是服务端程序的ip和端口。 |
| 方法 | 说明 |
| OutputStream getOutputStream( ) | 获得字节输出流对象 |
| InputStream getInputStream() | 获得字节输入流对象 |
ServerSocket(服务端)
| 构造器 | 说明 |
| public ServerSocket(int port) | 注册服务端端口 |
| 方法 | 说明 |
| public Socket accept() | 等待接口客户端的索克通信连接,连接成功返回索克对象,客户端建立end-to-end通信 |

如果想要实现多个客户同时接收的话,就需要使用多线程的知识,创建多个服务端。
首先创建一个继承类,创建多个线程:
客户端代码:
服务端代码:
具体操作:在运行单个服务端代码之后,运行多个客户端代码即可实现多个客户同时接收。
本文由 在线网速测试 整理编辑,转载请注明出处。