Java 网络编程 之 UDP

本文提供了一个简单的UDP服务器和客户端的Java实现案例。服务器监听9001端口接收消息并回复“ok”,客户端则发送“hello”到指定IP的9001端口并打印接收到的回复。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://www.verejava.com/?id=16994911008925

服务器端 
package com.udp;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;

public class UDPServer
{
	public static void main(String[] args)
	{
		try
		{
			DatagramSocket ds=new DatagramSocket(9001);
			System.out.println("在9001端口监听...");
			
			byte[] b=new byte[1024];
			DatagramPacket dp=new DatagramPacket(b,0,b.length);

			ds.receive(dp);
			byte[] data=dp.getData();
			String content=new String(data,0,dp.getLength());
			System.out.println(content);
			
			byte[] b2="ok".getBytes();
			DatagramPacket dp2=new DatagramPacket(b2,0,b2.length);
			dp2.setPort(dp.getPort());
			dp2.setAddress(dp.getAddress());
			ds.send(dp2);
			
			ds.close();
			
		} catch (SocketException e)
		{
			e.printStackTrace();
		} catch (IOException e)
		{
			e.printStackTrace();
		}
	}
}





客户端 
package com.udp;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;

public class UDPClient
{
	public static void main(String[] args)
	{
		try
		{
			DatagramSocket ds=new DatagramSocket(9000);
			System.out.println("客户端在 9000 监听");
			
			String content="hello";
			byte[] b=content.getBytes();
			DatagramPacket dp=new DatagramPacket(b,0,b.length);
			dp.setPort(9001);
			dp.setAddress(InetAddress.getByName("192.168.2.102"));
			
			ds.send(dp);
			
			byte[] b2=new byte[1024];
			DatagramPacket dp2=new DatagramPacket(b2,0,b2.length);
			ds.receive(dp2);
			byte[] data2=dp2.getData();
			content=new String(data2,0,dp2.getLength());
			System.out.println(content);
			
			ds.close();
			
		} catch (SocketException e)
		{
			e.printStackTrace();
		} catch (IOException e)
		{
			e.printStackTrace();
		}
	}
}

http://www.verejava.com/?id=16994911008925

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值