UDP:
package UDP.client;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;
public class MyUDPclient {
public static void main(String[] args) {
try {
//创建socket绑定到指定的端口
DatagramSocket socket = new DatagramSocket(2011);
sendThread s = new sendThread(socket);
s.start();
while(true){
//接受信息
byte receiveb[] = new byte[1024];
DatagramPacket receivepacket = new DatagramPacket(receiveb,receiveb.length);
socket.receive(receivepacket);
String str = new String(receiveb,0,receivepacket.getLength());
System.out.println("收到 服务器 信息:"+str);
System.out.println("请输入发给 服务器 的信息:");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
class sendThread extends Thread{
DatagramSocket socket = null;
Scanner in = new Scanner(System.in);
public sendThread(DatagramSocket socket){
this.socket = socket;
}
public void run() {
try {
System.out.println("请输入发给 服务器 的信息:");
while(true){
//发送信息
String sendstr = in.next();
byte sendb[] = sendstr.getBytes();
InetAddress address = InetAddress.getByName("127.0.0.1");
//创建一个发送数据报,address为接收方地址,port(2012)为接收方端口
DatagramPacket sendpacket = new DatagramPacket(sendb,sendb.length,address,2012);
socket.send(sendpacket);
}
}catch (Exception e) {
e.printStackTrace();
}
}
}
package UDP.server;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;
public class MyUDPserver {
public static void main(String[] args) {
try {
//创建socket绑定到指定的端口
DatagramSocket socket = new DatagramSocket(2012);
sendThread s = new sendThread(socket);
s.start();
while(true){
//接受信息
byte receiveb[] = new byte[1024];
//创建接收数据报对象,能接收实际长度字节的数据放到receive位置
DatagramPacket receivepacket = new DatagramPacket(receiveb,receiveb.length);
socket.receive(receivepacket);
String str = new String(receiveb,0,receivepacket.getLength());
System.out.println("收到 客户 信息:"+str);
System.out.println("请输入发给 客户 的信息:");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
class sendThread extends Thread{
DatagramSocket socket = null;
Scanner in = new Scanner(System.in);
public sendThread(DatagramSocket socket) {
this.socket = socket;
}
public void run() {
try {
while(true){
//发送信息
String sendstr = in.next();
byte sendb[] = sendstr.getBytes();
InetAddress address = InetAddress.getByName("127.0.0.1");
//创建一个发送数据报,address为接收方地址,port(2011)为接收方端口
DatagramPacket sendpacket = new DatagramPacket(sendb,sendb.length,address,2011);
socket.send(sendpacket);
}
}catch (Exception e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
在这个主题中,我们将详细探讨如何使用Java进行UDP多线程服务端和简单客户端的编程,以及如何通过IP识别不同的客户端。 首先,让我们了解一下UDP的基础知识。UDP是一种无连接的传输层协议,不保证数据的顺序、可靠...
java多线程实现TCP连接UDP聊天的聊天程序
在这个"java udp 多线程实现简单的通信"的项目中,我们可能看到了如何使用Java的多线程机制来维持UDP通信的持续性,构建一个简单的聊天应用。 首先,我们需要了解`DatagramSocket`类的基本用法。`DatagramSocket`是...
在Java中,我们可以使用java.net包中的DatagramSocket类和DatagramPacket类来实现UDP通信。下面将详细介绍Java进行UDP编程的相关知识点。 **一、UDP的特点** 1. **无连接性**:UDP不建立连接,直接发送数据,因此...
Java UDP视频传输是一种基于用户数据报协议(User Datagram Protocol)的实时数据传输方式。UDP相较于TCP,具有更低的延迟和更高的传输效率,因为其不保证数据包的顺序、不进行重传,所以适用于对实时性要求高的应用...
本资源提供的"多线程UDP通讯程序源代码"就是一个很好的实践案例,它涉及到计算机网络中的用户数据报协议(UDP)和多线程编程技术。以下是关于这两个关键知识点的详细解释: 1. **用户数据报协议(UDP)**: UDP是...
标题中的"UDP.rar"指的是一个包含了使用UDP协议的Java程序的压缩文件,主要涉及的是UDP(User Datagram Protocol)在Java编程中的应用。UDP是一种无连接的传输层协议,相较于TCP,它提供了更低的延迟和更高的数据...
本程序利用Java的多线程技术实现了一个UDP的收发程序,这使得发送和接收数据可以在不同的线程中并发执行,提高了程序的效率。 首先,我们要理解Java中的线程。Java提供了内置的线程支持,通过`Thread`类或`Runnable...
Java基于UDP协议的聊天程序是一种实现...总的来说,Java基于UDP协议的聊天程序是一个实践性的项目,涵盖了网络通信、多线程编程、输入输出处理等多个Java开发的重要领域,对于提升编程能力和理论知识都有很大的帮助。
上述代码展示了基本的UDP数据收发流程,但实际应用中可能需要考虑更多的因素,如多线程处理接收,错误处理,数据的分包与重组等。为了提高程序的可读性和复用性,通常会将发送和接收功能封装到单独的类或方法中,并...
本资料主要针对初学者,通过简单的代码示例来讲解如何在Java中实现UDP通信,特别是多线程通信SERVER的构建。 首先,我们需要理解UDP的基本概念。UDP不建立连接,发送数据前不需要确认对方是否在线,也不保证数据包...
Java语言中的UDP(User Datagram Protocol)通信是一种基于无连接的数据包网络协议,相较于TCP,它提供了更低的延迟和更高的吞吐量,但不保证数据的顺序和可靠性。在Java中,我们通过`java.net`包中的`...
`ServerThread`通常是一个Java线程类,负责处理UDP服务器的监听和响应任务。在这个例子中,服务器会创建一个`DatagramSocket`实例,监听特定端口上的数据包。当接收到数据时,它会通过`DatagramPacket`读取数据,并...
2. **Java的Socket编程**:在Java中,我们使用`java.net.DatagramSocket`类来创建UDP套接字,用于发送和接收数据报文。`DatagramPacket`类则用来封装要发送的数据以及接收的数据。 3. **16进制数据处理**:项目中...
Java Netty是一个高性能、异步事件驱动的网络应用程序框架,常用于开发高效的网络服务,包括TCP、UDP等网络协议的应用。在"基于Java Netty的UDP客户端声呐数据对接"项目中,我们主要关注如何利用Netty处理UDP通信,...
Java之UDP聊天室是一个实现多对多通信的项目,它基于用户数据报协议(User Datagram Protocol,UDP)来构建。UDP是一种无连接的、不可靠的传输层协议,相较于TCP,它具有更低的延迟和更高的效率,适合实时通信或者对...
基于Java GUI 多线程 UDP网络编程的小型聊天软件
在Java中,通常使用`java.net.DatagramSocket`类来处理UDP通信。然而,当使用Netty时,我们可以通过`io.netty.channel.udps.UdpServer`和`io.netty.channel.udps.UdpChannel`来构建更复杂的网络应用。下面是一个简单...
在这个Java实现的UDP简易客户端与服务器端程序中,我们可以通过两个核心文件——UDPClient.java和UDPServer.java来理解其工作原理。 首先,让我们来看看`UDPServer.java`。服务器端通常负责监听特定的端口,接收...
Java UDP聊天程序是一种基于用户数据报协议(User Datagram Protocol,UDP)实现的简单通信应用。UDP是TCP/IP协议族中的一个无连接、不可靠的传输协议,它在发送数据时不需要建立连接,也不保证数据包的顺序到达和...