UTP网络编程入门案例

阅读: 评论:0

UTP网络编程入门案例

UTP网络编程入门案例

说明:UTP是面向无连接的,不可靠的协议,即传输数据时不会确定对方是否在线,优点是效率高。

DatagramSocket & DatagramPacket

DatagramSocket是使用UDP协议的Socket,它的作用是接收和发送数据包;

DatagramPacket是DatagramSocket发送和接收的数据包对象,两者需配合使用

DatagramSocket 方法

DatagramSocket():无参构造方法;

DatagramSocket(int port):带端口号的构造方法;

send(DatagramPacket p):发送一个数据包

receive(DatagramPacket p):接收一个数据包

close():关闭通道

DatagramPacket 方法

DatagramPacket(byte buf[], int length,InetAddress address, int port):指定一个字节数组,长度,IP地址和端口号的数据包

DatagramPacket(byte buf[], int length):指定一个字节数组和长度的数据包

入门案例

客户端:发送指定IP和端口的数据包;

如果不发给本机,IP地址应该设置为接收方的IP,当然双方应该是能Ping通的,否则接收不到

import java.io.IOException;
import java.*;public class EssayClient {public static void main(String[] args) throws IOException {// 创建客户端的DatagramSocket对象DatagramSocket dgs = new DatagramSocket();// 发送Hellobyte[] data = "Hello!".getBytes();// 获取本地的InetAddress对象InetAddress localhost = ByName("192.168.13.28");// 将要发送的数据,IP信息,端口号封装成一个数据包DatagramPacket dgp = new DatagramPacket(data, data.length, localhost, 10000);// 发送数据dgs.send(dgp);// 关闭通道dgs.close();}
}

服务端:指定IP和端口,接收数据包

需要注意的是,这里的端口需要和客户端那边设置的数据包端口号一致,否则也接收不到

import java.io.IOException;
import java.DatagramPacket;
import java.DatagramSocket;public class EssayServer {public static void main(String[] args) throws IOException {// 创建接收端的DatagramSocket对象,指定端口号DatagramSocket dgs = new DatagramSocket(10000);// 创建一个接收数据的字节数组byte[] data = new byte[1024];// 创建一个数据包,数据包大小为1KDatagramPacket dgp = new DatagramPacket(data, data.length);// 接收数据包ive(dgp);// 获取接收到的数据包信息byte[] dataByteArray = Data();// 获取接收到的数据包字节长度int length = Length();// 将信息转为字符串String message = new String(dataByteArray, 0, length);// 关闭通道dgs.close();System.out.println("message = " + message);}
}

另外,启动程序时需要先启动服务端,再启动客户端;还需要注意的是,客户端如果没有接收到数据包会一直阻塞,下图是我更改了服务端的端口号后运行的结果

本文发布于:2024-01-28 19:17:23,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17064406459670.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:网络编程   入门   案例   UTP
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23