`

java udp 简单实现

    博客分类:
  • J2SE
阅读更多

java udp 简单实现


------

代码:

 

 

* 运行方法:

      直接 运行 UdpTest.java 的 main 函数 即可,

 


* udp server

 

package eric.j2se.net.udp;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;

/**
 * udp server
 * 
 * @author eric
 * @date 2011-2-20 下午05:05:55
 */
public class UdpServer implements Runnable {
	private int port;

	public UdpServer(int port) {
		this.port = port;
	}

	public void run() {
		try {
			// listening at port for udp request
			DatagramSocket server = new DatagramSocket(new InetSocketAddress(port));
			byte[] bs = new byte[4];
			ByteBuffer bbuf = null;
			DatagramPacket data = new DatagramPacket(bs, bs.length);
			server.setSoTimeout(1000 * 10); // set timeout
			while (true) { // 一直监听
				server.receive(data);
				bbuf = ByteBuffer.wrap(bs, 0, 4);
				String s = "receive " + data.getData().length + " byte data,value: " + bbuf.getInt();
				System.out.println(s);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		new Thread(new UdpServer(11111)).start();
	}
}

 
* udp client

 

package eric.j2se.net.udp;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;

/**
 * udp client
 * 
 * @author eric
 * @date 2011-2-20 下午05:15:05
 */
public class UdpClient implements Runnable {
	private int port;

	public UdpClient(int port) {
		this.port = port;
	}

	public void run() {
		try {
			DatagramSocket client = new DatagramSocket();
			byte[] bs = new byte[4];
			InetSocketAddress isa = new InetSocketAddress("localhost", port);
			DatagramPacket data = new DatagramPacket(bs, bs.length);
			data.setSocketAddress(isa);
			for (int i = 0; i < 10; i++) {
				data.setData(int2bytes(i));
				client.send(data);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	static byte[] int2bytes(int num) {
		byte[] b = new byte[4];
		for (int i = 0; i < 4; i++) {
			b[i] = (byte) (num >>> (24 - i * 8));
		}
		return b;
	}
}

 


* test

 

package eric.j2se.net.udp;

/**
 * test udp
 * 
 * @author eric
 * @date 2011-2-20 下午05:43:06
 */
public class UdpTest {
	public static void main(String[] args) throws InterruptedException {
		int port = 11111;

		new Thread(new UdpServer(port)).start();// start udp server,listen request
		new Thread(new UdpClient(port)).start();// start udp client,send data
	}
}

 

 

------

分享到:
评论

相关推荐

    JAVA UDP协议实现绘圆同步

    Java UDP协议实现绘圆同步是一种基于用户数据报协议(UDP)的简单通信方式,用于在客户端和服务端之间实时同步绘制图形。在这个例子中,我们有两个关键类:`DrawServer` 和 `DrawClient`。 `DrawServer` 类是服务器...

    java udp 多线程实现简单的通信

    在这个"java udp 多线程实现简单的通信"的项目中,我们可能看到了如何使用Java的多线程机制来维持UDP通信的持续性,构建一个简单的聊天应用。 首先,我们需要了解`DatagramSocket`类的基本用法。`DatagramSocket`是...

    java udp 实现简单实例

    本文将通过一个简单的实例来介绍如何使用Java实现UDP通信。 首先,我们来看一下UDP通信中的两个主要类:`DatagramPacket`和`DatagramSocket`。 1. `DatagramPacket`类: - `DatagramPacket`用于封装数据,并指定...

    Java实现UDP穿透NAT技术

    UDP(User Datagram Protocol)是一种无连接的传输层协议,它提供了快速、简单、不可靠的数据报服务。在处理网络通信时,NAT(Network Address Translation)技术被广泛应用于路由器上,用于将私有IP地址转换为公共...

    Java UDP 实现简单聊天功能

    Java UDP实现简单聊天功能主要涉及了网络编程中的用户数据报协议(User Datagram Protocol,简称UDP)。UDP是一种无连接、不可靠的传输协议,适合于实时数据传输或对速度要求较高的应用,因为它没有TCP的握手和确认...

    java接听UDP广播

    本文将详细讲解如何使用Java来实现一个UDP广播监听器,以接收并处理UDP广播数据。 首先,我们需要理解UDP的基本原理。UDP是一种无连接的传输层协议,它不像TCP那样在发送数据前建立连接,而是直接将数据包发送到...

    UDP简易客户端与服务器端程序(Java)

    在这个Java实现的UDP简易客户端与服务器端程序中,我们可以通过两个核心文件——UDPClient.java和UDPServer.java来理解其工作原理。 首先,让我们来看看`UDPServer.java`。服务器端通常负责监听特定的端口,接收...

    java udp多人聊天室

    Java UDP多人聊天室是一个利用Java语言和用户数据报协议(UDP)开发的多用户交互系统。UDP是一种无连接的、不可靠的传输协议,适用于实时通信和对速度要求较高的场景,因为它无需建立连接,直接发送数据包,减少了...

    java-tcp-udp编程

    文件"java udp 简单实现 - - ITeye技术网站.mht"可能包含的是一个简单的Java UDP通信示例,涵盖了如何创建`DatagramSocket`,发送和接收数据报文的基本操作。理解这些基本操作对于初学者至关重要。 文件"(转)使用...

    JavaUDP开发简单聊天系统

    在本项目中,“JavaUDP开发简单聊天系统”是指使用Java语言实现的一个基于UDP协议的简易聊天程序。下面我们将深入探讨Java UDP编程的关键概念和技术。 首先,Java提供了`java.net.DatagramSocket`类来处理UDP通信。...

    java基于UDP实现图片群发功能

    在本文中,我们将深入探讨如何使用Java基于UDP协议实现图片群发功能。UDP(用户数据报协议)是一种无连接的网络协议,它在通信过程中不建立连接,因此具有较高的效率,适合实时性要求高的应用场景。然而,由于其不...

    java UDP通讯实例

    这个简单的实例为我们提供了基础的UDP通信模型,可以帮助开发者理解和实现基于Java的UDP通信系统。通过这两个文件,你可以学习如何在Java中建立和管理UDP套接字,以及如何收发数据包,这对于网络编程和实时多媒体...

    java 07用UDP实现两人互聊。

    本项目以"java 07用UDP实现两人互聊"为主题,通过Java的Socket编程来构建一个简单的UDP聊天系统。 首先,我们需要了解UDP的基础概念。UDP是User Datagram Protocol的缩写,是一种无连接的、不可靠的传输协议。这...

    javaUDP实现服务器客户端大小写的转换

    在这个Java UDP实现中,我们将探讨如何构建一个简单的服务器和客户端系统,该系统可以完成字符串大小写的转换。 在Java中,我们通常使用`java.net.DatagramSocket`类来处理UDP通信。这个类允许我们发送和接收UDP...

    java实现基于netty 的udp字节数据接收服务

    下面是一个简单的Netty UDP服务端实现的概述: 1. **创建Bootstrap**: 首先,我们需要创建一个`Bootstrap`实例,它是Netty中的启动配置类。通过`Bootstrap.group()`指定线程池,`Bootstrap.channel()`指定使用`...

    Java UDP 局域网聊天室

    总的来说,这个“Java UDP 局域网聊天室”项目展示了如何利用Java和UDP协议实现一个简单的实时通信应用。开发者面临的主要挑战在于如何在保证用户体验的同时,处理好UDP的不可靠性问题。通过图形界面的设计,用户...

    java udp socket 网络编程

    Java UDP套接字网络编程是Java编程领域中的一个重要部分,主要涉及如何利用Java的Socket类库来实现基于用户数据报协议(User Datagram Protocol)的通信。UDP是一种无连接的、不可靠的传输协议,适用于对实时性要求...

    Java实现udp通信协议

    在IT行业中,网络通信是至关重要的一个领域,而UDP(用户数据报协议)作为传输层的一种无连接协议,因其高效、简单的特点,在实时性要求高的应用中被广泛使用,如在线视频、语音通话等。本项目是基于JavaSE平台实现...

    Java实现udp协议的文件传输

    本篇文章将深入探讨如何使用Java语言来实现UDP协议的文件传输。 首先,我们需要了解UDP的基本原理。UDP是一种无连接的传输层协议,它不保证数据的可靠传输,也不进行拥塞控制。这意味着数据包可能会丢失、重复或...

    JAVA udp 协议编程

    Java UDP协议编程主要涉及到网络通信中的无连接服务,它的特点是快速、简单,但不保证数据的可靠传输。UDP(User Datagram Protocol)在OSI模型的传输层中运作,与TCP协议相比,它不进行数据包的分组、组装和排序,...

Global site tag (gtag.js) - Google Analytics