//发送消息类
Message.java
import java.io.Serializable;
public class Message implements Serializable{
private String msg;
private String id;
private String destid;
public Message(String msg, String id, String destid) {
this.msg = msg;
this.id = id;
this.destid = destid;
}
//获得消息内容
public String getMessage() {
return msg;
}
//获得发送方的ip
public String getID() {
return id;
}
//获得接受方的ip
public String getDestID() {
return destid;
}
}
//接受方
Receiver.java
import java.net.*;
import java.io.*;
public class Receiver extends Thread {
private Message msg;
private DatagramPacket packet;
private DatagramSocket socket;
private byte[] recVBuf = new byte[500];
public Receiver() {
try{
//创建udp包以接受数据。
packet = new DatagramPacke(recvBuf,recvBuf.length);
//创建接受方的udp端口以接收数据
socket = new DatagramSocket(7002);
}
catch(Exception e){}
}
public void run() {
try {
while(true){
//接受数据
socket.receive(packet);
ByteArrayInputStream byteStream = new
ByteArrayInputStream(recvBuf);
ObjectInputStream is = new ObjectInputStream(new
BufferedInputStream(byteStram));
Object o = is.readObject();
msg = (Message)o;
is.close();
System.out.println(msg.getMessage());
}
}
catch(Throwable t) {
t.printStackTrace();
}
}
}
//发送方
Sender.java
import java.net.*;
import java.io.*;
public class Sender extends Thread {
private Message msg;
private DatagramSocket socket;
private DatagramPacket packet;
public Sender(Message msg) {
try {
this.msg = msg;
//获得目的方的ip地址
String destID = msg.getDestID();
//获得将要发送的消息内容
String destID = msg.getDestIDString message = msg.getMessage();
ByteArrayOutputStream byteStream = new ByteArrayOutputStream(500);
ObjectOutputStream os = new ObjectOutputStream(new
BufferedOutputStream(byteStream));
os.writeObject(msg);
os.flush();
byte[] sendBuf = byteStream.toByteArray();
//创建udp数据包以发送数据
packet = new DatagramPacket(sendBuf,sendBuf.length,
InetAddress.getByName(destID),7002);
//创建发送udp套接字,指定套接字口。
socket = new DatagramSocket(7000);
os.close();
}
catch(Throwable t) {
t.printStackTrace();
}
}
public void run() {
try {
//发送消息
socket.send(packet);
//发送完毕关闭套接字。
socket.close();
}
catch(Throwable t) {
t.printStackTrace();
}
}
}
//测试程序
Udp_Chat.java
import java.io.*;
import java.net.*;
public class UDP_Chat {
public UDP_Chat(String s){
}
public static void main(String args[])throws Exception{
Message a = new Message("阿飞的卡","211.92.155.200" ,"211.92.155.200");
new Sender(a).start();
new Receiver().start();
}
}
分享到:
相关推荐
1. UDP协议的基本概念和使用 2. Java的`DatagramSocket`和`DatagramPacket`类 3. 多线程编程,处理并发用户 4. 图形界面设计和事件处理 5. 字符串验证和格式检查 6. 可能的加密与身份验证技术 这个项目不仅涵盖了...
Java UDP协议交互是一种基于无连接的传输层协议,用于实现控制台聊天应用。UDP(User Datagram Protocol)相较于TCP(Transmission Control Protocol)具有更快的传输速度,因为它不进行握手、确认和重传等复杂的...
Java基于UDP协议的聊天程序是一种实现网络通信的应用实例,它利用了无连接的用户数据报协议(User Datagram Protocol,简称UDP)进行数据传输。在这个完整版的程序中,开发者已经完成了从设计到调试的全部过程,使其...
总的来说,这个“Java UDP 局域网聊天室”项目展示了如何利用Java和UDP协议实现一个简单的实时通信应用。开发者面临的主要挑战在于如何在保证用户体验的同时,处理好UDP的不可靠性问题。通过图形界面的设计,用户...
- UDP协议不保证数据的有序到达,因此需要将发送的数据进行序列化,如JSON或XML格式,方便服务器和客户端解析。 - 在接收端,数据包的内容需要被反序列化回对象,以便进行逻辑处理。 5. **错误处理**: - UDP的...
Java基于UDP协议的聊天程序是一种实现网络通信的应用实例,它利用了UDP(User Datagram Protocol,用户数据报协议)这一无连接、不可靠的传输协议。UDP的特点在于其速度较快,因为不需要建立和维护连接,适合实时性...
描述中提到的是一个基于UDP协议实现的网络聊天系统,由客户端(UDPClient.java)和服务器端(UDPServer.java)组成。这个系统利用了Java语言的网络编程API,如Socket和DatagramPacket类,来实现数据的发送和接收。 ...
Java聊天程序基于UDP协议,这是一种使用用户数据报协议(User Datagram Protocol)来实现网络通信的简单聊天工具。UDP是传输层的一种无连接协议,与TCP相比,它更注重速度和效率,而对数据的可靠传输则相对较少保障...
在本项目中,“JavaUDP开发简单聊天系统”是指使用Java语言实现的一个基于UDP协议的简易聊天程序。下面我们将深入探讨Java UDP编程的关键概念和技术。 首先,Java提供了`java.net.DatagramSocket`类来处理UDP通信。...
这个"UDP.rar"可能包含了一个简单的本地UDP聊天程序,让我们来深入探讨一下相关的Java UDP编程知识点: 1. **DatagramSocket类**:这个类代表了UDP的套接字,用于发送和接收数据报。创建一个DatagramSocket实例,...
【标题】:“基于Java实现的UDP多人聊天软件” 在IT领域,网络通信是不可或缺的一部分,尤其是在开发多用户交互系统时。本项目“基于Java实现的UDP多人聊天软件”就是一个很好的实例,展示了如何利用Java语言来设计...
总结来说,这个项目是一个实践性质的Java UDP网络编程示例,可以帮助初学者了解如何利用UDP协议进行简单的即时通讯应用开发,同时提供了多线程和网络编程的实践经验。虽然功能可能不完整,但作为学习和研究的基础是...
Java UDP聊天程序是一种基于用户数据报协议(User Datagram Protocol,UDP)实现的简单通信应用。UDP是TCP/IP协议族中的一个无连接、不可靠的传输协议,它在发送数据时不需要建立连接,也不保证数据包的顺序到达和...
Java基于UDP的聊天程序是一种利用无连接的用户数据报协议(User Datagram Protocol)进行网络通信的应用。UDP在传输层提供了一种简单而高效的方式,它不保证数据的顺序、完整性和可靠性,但因其轻量级的特性,在实时...
Java基于UDP协议的聊天程序是一种实现网络通信的应用实例,它利用了UDP(User Datagram Protocol,用户数据报协议)这一无连接的传输层协议。UDP在TCP/IP协议族中扮演着重要角色,它提供了不可靠、无序的数据传输...
标题中的“一个基于UDP协议的网络聊天程序”指的是使用UDP(User Datagram Protocol)协议开发的网络通信应用,这种协议属于传输层协议,主要用于无连接的数据传输,特点是速度快但不保证数据的顺序和可靠性。在Java...
Java基于UDP传输协议的简单聊天室是一个典型的网络编程示例,它涵盖了多个核心知识点,包括Java的Socket编程、用户数据报协议(UDP)以及JSON数据格式的使用。在这个项目中,我们将深入理解这些概念并探讨如何将它们...
在这个基于UDP协议的Java聊天程序中,我们将探讨如何利用Java的网络编程API来实现多客户端的通信。 首先,我们需要理解Java中的Socket编程模型。在TCP中,我们使用`Socket`和`ServerSocket`类进行通信,但在UDP中,...
UDP(User Datagram Protocol)是...通过以上分析,我们可以看到“UDP网络聊天室”项目涉及到了网络编程、多线程、数据包处理、错误处理等多个方面的知识,而Java UDP聊天则是利用这些技术实现一个实时的网络聊天应用。
Java实现的基于UDP协议的简单聊天室是一种网络通信应用,主要利用了Java的Socket编程来构建客户端和服务器端的通信框架。UDP(User Datagram Protocol)是一种无连接的、不可靠的传输协议,常用于实时数据交换,如...