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协议实现绘圆同步是一种基于用户数据报协议(UDP)的简单通信方式,用于在客户端和服务端之间实时同步绘制图形。在这个例子中,我们有两个关键类:`DrawServer` 和 `DrawClient`。 `DrawServer` 类是服务器...
在这个"java udp 多线程实现简单的通信"的项目中,我们可能看到了如何使用Java的多线程机制来维持UDP通信的持续性,构建一个简单的聊天应用。 首先,我们需要了解`DatagramSocket`类的基本用法。`DatagramSocket`是...
本文将通过一个简单的实例来介绍如何使用Java实现UDP通信。 首先,我们来看一下UDP通信中的两个主要类:`DatagramPacket`和`DatagramSocket`。 1. `DatagramPacket`类: - `DatagramPacket`用于封装数据,并指定...
UDP(User Datagram Protocol)是一种无连接的传输层协议,它提供了快速、简单、不可靠的数据报服务。在处理网络通信时,NAT(Network Address Translation)技术被广泛应用于路由器上,用于将私有IP地址转换为公共...
Java UDP实现简单聊天功能主要涉及了网络编程中的用户数据报协议(User Datagram Protocol,简称UDP)。UDP是一种无连接、不可靠的传输协议,适合于实时数据传输或对速度要求较高的应用,因为它没有TCP的握手和确认...
本文将详细讲解如何使用Java来实现一个UDP广播监听器,以接收并处理UDP广播数据。 首先,我们需要理解UDP的基本原理。UDP是一种无连接的传输层协议,它不像TCP那样在发送数据前建立连接,而是直接将数据包发送到...
在这个Java实现的UDP简易客户端与服务器端程序中,我们可以通过两个核心文件——UDPClient.java和UDPServer.java来理解其工作原理。 首先,让我们来看看`UDPServer.java`。服务器端通常负责监听特定的端口,接收...
Java UDP多人聊天室是一个利用Java语言和用户数据报协议(UDP)开发的多用户交互系统。UDP是一种无连接的、不可靠的传输协议,适用于实时通信和对速度要求较高的场景,因为它无需建立连接,直接发送数据包,减少了...
文件"java udp 简单实现 - - ITeye技术网站.mht"可能包含的是一个简单的Java UDP通信示例,涵盖了如何创建`DatagramSocket`,发送和接收数据报文的基本操作。理解这些基本操作对于初学者至关重要。 文件"(转)使用...
在本项目中,“JavaUDP开发简单聊天系统”是指使用Java语言实现的一个基于UDP协议的简易聊天程序。下面我们将深入探讨Java UDP编程的关键概念和技术。 首先,Java提供了`java.net.DatagramSocket`类来处理UDP通信。...
在本文中,我们将深入探讨如何使用Java基于UDP协议实现图片群发功能。UDP(用户数据报协议)是一种无连接的网络协议,它在通信过程中不建立连接,因此具有较高的效率,适合实时性要求高的应用场景。然而,由于其不...
这个简单的实例为我们提供了基础的UDP通信模型,可以帮助开发者理解和实现基于Java的UDP通信系统。通过这两个文件,你可以学习如何在Java中建立和管理UDP套接字,以及如何收发数据包,这对于网络编程和实时多媒体...
本项目以"java 07用UDP实现两人互聊"为主题,通过Java的Socket编程来构建一个简单的UDP聊天系统。 首先,我们需要了解UDP的基础概念。UDP是User Datagram Protocol的缩写,是一种无连接的、不可靠的传输协议。这...
在这个Java UDP实现中,我们将探讨如何构建一个简单的服务器和客户端系统,该系统可以完成字符串大小写的转换。 在Java中,我们通常使用`java.net.DatagramSocket`类来处理UDP通信。这个类允许我们发送和接收UDP...
下面是一个简单的Netty UDP服务端实现的概述: 1. **创建Bootstrap**: 首先,我们需要创建一个`Bootstrap`实例,它是Netty中的启动配置类。通过`Bootstrap.group()`指定线程池,`Bootstrap.channel()`指定使用`...
总的来说,这个“Java UDP 局域网聊天室”项目展示了如何利用Java和UDP协议实现一个简单的实时通信应用。开发者面临的主要挑战在于如何在保证用户体验的同时,处理好UDP的不可靠性问题。通过图形界面的设计,用户...
Java UDP套接字网络编程是Java编程领域中的一个重要部分,主要涉及如何利用Java的Socket类库来实现基于用户数据报协议(User Datagram Protocol)的通信。UDP是一种无连接的、不可靠的传输协议,适用于对实时性要求...
在IT行业中,网络通信是至关重要的一个领域,而UDP(用户数据报协议)作为传输层的一种无连接协议,因其高效、简单的特点,在实时性要求高的应用中被广泛使用,如在线视频、语音通话等。本项目是基于JavaSE平台实现...
本篇文章将深入探讨如何使用Java语言来实现UDP协议的文件传输。 首先,我们需要了解UDP的基本原理。UDP是一种无连接的传输层协议,它不保证数据的可靠传输,也不进行拥塞控制。这意味着数据包可能会丢失、重复或...
Java UDP协议编程主要涉及到网络通信中的无连接服务,它的特点是快速、简单,但不保证数据的可靠传输。UDP(User Datagram Protocol)在OSI模型的传输层中运作,与TCP协议相比,它不进行数据包的分组、组装和排序,...