JAVA网络编程之UDP通信演示

来源:互联网 发布:红妍肌活精华露 知乎 编辑:程序博客网 时间:2024/05/01 01:31

java Udp通信用到的主要是几个类:DatagramSocket,DatagramPacket

UDP数据包发送步骤:

1.使用DatagramSocket()创建一个数据包套接字。

2.使用DatagramPacket()创建要发送的数据包。

3.使用DatagramSocket()类的send()方法发送数据包。

UDP数据包接收步骤:

1.使用DatagramSocket(int port)创建一个数据包套接字,绑定到指定端口。

2.使用DatagramPacket()创建字节数组接收数据包。

3.使用DatagramPacket()类的receive()方法接受数据包。

下面是我的测试代码,参考了网上别人的代码,在此表示感谢:

客户端:

import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;public class UdpClient {public static void main(String[] args){DatagramSocket client;try{client = new DatagramSocket();String str = "我是客户机我是客户机";byte[] sendBuf;sendBuf = str.getBytes();InetAddress address = InetAddress.getByName("192.168.1.108");int port = 9999;DatagramPacket sendPacket = new DatagramPacket(sendBuf,sendBuf.length,address,port);client.send(sendPacket);System.out.println("已发送");byte[] recBuf = new byte[100];DatagramPacket recPacket = new DatagramPacket(recBuf,recBuf.length);client.receive(recPacket);String recMsg = new String(recPacket.getData());System.out.println(recMsg);client.close();}catch(Exception e){e.printStackTrace();}}}


服务端:

import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;public class UdpServer {public static void main(String[] args){DatagramSocket server;try{server = new DatagramSocket(9999);byte[] buf = new byte[100];DatagramPacket recPacket = new DatagramPacket(buf,buf.length);server.receive(recPacket);String str = new String(recPacket.getData());System.out.println(str);int port = recPacket.getPort();InetAddress address = recPacket.getAddress();String answerMsg = "已经收到你的消息";byte[] sendBuf;sendBuf = answerMsg.getBytes();DatagramPacket sendPacket = new DatagramPacket(sendBuf,sendBuf.length,address,port);server.send(sendPacket);server.close();}catch(Exception e){e.printStackTrace();}}}

原创粉丝点击