`
wangfeiaini
  • 浏览: 54764 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

java网络编程:UDP

阅读更多

今天看了UDP协议的东西,还是编写一个简单的客户端和服务器:

客户端代码:

public class UDPClient {
	private static final int TIMEOUT = 3000;
	private static final int MAXTRIES = 5;
	public static void main(String[] args) {
		try {
			InetAddress address = InetAddress.getByName("localhost");
			byte[] bytesRead = "Echo UDP!".getBytes();
			int port = 80;
			DatagramSocket socket = new DatagramSocket();
			socket.setSoTimeout(TIMEOUT);
			DatagramPacket packet = new DatagramPacket(bytesRead, bytesRead.length,address,port);
			DatagramPacket received = new DatagramPacket(new byte[bytesRead.length], bytesRead.length);
			int tries = 0;
			boolean response = false;
			do{
				try {
					socket.send(packet);
					socket.receive(received);
					if(!received.getAddress().equals(address)){
						System.out.println("unknown resource");
					}
					response = true;
				} catch (IOException e) {
					tries++;
					System.out.println("Time out "+(MAXTRIES-tries));
					e.printStackTrace();
				}
			}while((!response)&&(tries<MAXTRIES));
			if(response){
				System.out.println("Received:"+new String(packet.getData()));
			}else{
				System.out.println("No response");
			}
			socket.close();
		} catch (UnknownHostException e) {
			e.printStackTrace();
		} catch (SocketException e) {
			e.printStackTrace();
		}
	}
}

 

服务端:

public class UDPServer {
	private static final int ECHOMAX = 255;
	public static void main(String[] args) {
		int port = 80;
		try {
			DatagramSocket socket = new DatagramSocket(port);
			DatagramPacket packet = new DatagramPacket(new byte[ECHOMAX], ECHOMAX);
			while(true){
				socket.receive(packet);
				System.out.println("handling address:"+packet.getAddress()+"on port :"+packet.getPort());
				socket.send(packet);
				packet.setLength(ECHOMAX);
			}
		} catch (SocketException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

 

1
8
分享到:
评论

相关推荐

    Java网络编程案例教程习题参考答案 .pdf

    Java_network_programming是Java编程语言中一个基础组件,用于实现网络通信。以下是Java网络编程案例教程习题参考答案中涉及到的知识点: 1. Socket编程:Socket是Java网络编程中最基本的组件,用于实现网络通信。...

    Java网络编程:深入理解TCP,UDP通信机

    Java网络编程是Java开发中的一个重要领域,它涉及到Socket编程、TCP/UDP通信协议等多个方面。通过掌握Java网络编程的基础知识和技能,开发者可以构建出功能强大、性能优异的网络应用程序。随着技术的不断发展,Java...

    《Java网络编程实例:Java网络编程实例》

    5. **输入/输出流**:网络编程涉及数据的发送和接收,因此理解和掌握I/O流是必需的。例如,InputStream和OutputStream用于处理字节流,而Reader和Writer则用于处理字符流。 6. **URL和URLConnection**:Java的URL类...

    Java网络编程:连接网络数据库的多种方法

    ### Java网络编程:连接网络数据库的多种方法 #### 摘要 随着互联网技术的不断发展,Java作为一种跨平台、安全且适用于分布式计算环境的语言,在网络应用程序开发中扮演着至关重要的角色。尤其在网络数据库连接方面...

    java网络编程之UDP协议通信

    Java网络编程中的UDP(User Datagram Protocol)协议是一种无连接、不可靠的传输协议,与TCP相比,它更注重速度和效率。在这个项目中,我们利用Java的Socket编程接口实现了基于UDP的通信。以下是对相关知识点的详细...

    Java网络编程:连接网络数据库的多种方法.pdf

    ### Java网络编程:连接网络数据库的多种方法 #### 摘要 随着互联网技术的不断发展,Java作为一种跨平台、健壮、安全且适用于分布式计算环境的面向对象编程语言,在网络应用开发领域扮演着极其重要的角色。Java语言...

    Java网络编程/Java网络编程实例

    9. **异常处理**:网络编程中常见的异常有IOException、SocketException等,良好的异常处理机制可以确保程序的健壮性。 10. **网络调试工具**:如telnet、curl和Wireshark等,可以帮助开发者测试和调试网络应用。 ...

    java网络编程

    7. **异常处理**:网络编程中,必须妥善处理IOException,确保程序的健壮性。 8. **网络安全**: - **加密与解密**:了解基本的加密算法,如AES和RSA,以及如何在Java中实现。 - **认证与授权**:理解身份验证和...

    JAVA的udp编程

    Java的UDP编程

    java网络编程,UDP,发送16进制报文。

    总结,本教程介绍了如何使用Java进行UDP网络编程,特别是如何发送16进制格式的报文。通过结合Base64编码,可以实现将大型数据(如图片)分块发送。实践中,需要考虑数据完整性和网络环境的可靠性,以及服务端的数据...

    JAVA进行UDP编程

    下面将详细介绍Java进行UDP编程的相关知识点。 **一、UDP的特点** 1. **无连接性**:UDP不建立连接,直接发送数据,因此速度快,但可能会丢失数据或顺序错乱。 2. **不可靠性**:UDP不保证数据包的接收,也不检测和...

    java udp socket 网络编程

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

    Java网络编程(第4版)PDF

    《Java网络编程(第4版)》是一本深入探讨Java平台上的网络编程技术的专业书籍,适合想要提升Java通讯技术的学者阅读。此书全面覆盖了Java网络编程的基础和高级概念,帮助开发者理解如何利用Java语言构建高效、可靠的...

    Java网络编程期末考试复习题库+答案

    Java网络编程是计算机科学中的一个重要领域,特别是在软件开发中,它涉及到如何通过网络进行数据传输和通信。在Java中,网络编程主要依赖于Java的Socket编程、ServerSocket、URL类以及NIO(非阻塞I/O)等核心API。这...

    Java核心编程技术源码

    Java网络编程:Applet、Socket/TCP/UDP、NIO、RMI、CORBA。Java高级特性:反射、泛型、注释符、自动装箱和拆箱、枚举类、可变参数、可变返回类型、增强循环、静态导入。随书附赠光盘内容为《Java高手真经(编程基础卷...

    Java网络编程UDP

    Java网络编程中的UDP(User Datagram Protocol)是一种无连接的、不可靠的传输协议,它相比TCP(Transmission Control Protocol)在速度上更快,因为不需要建立和维护连接,也不保证数据包的顺序和可靠性。UDP适用于...

    Java网络编程第三版.pdf

    1. **Java网络编程基础**:首先,书中会介绍Java中的Socket编程,包括TCP和UDP协议的基础知识,以及如何使用Java的Socket和ServerSocket类创建客户端和服务器端的连接。 2. **I/O与NIO**:Java的I/O流系统是网络...

    Java Socket编程实现UDP网络测试

    Java Socket编程实现UDP网络测试是计算机网络领域中的一个重要实践,主要涉及到Java编程语言以及网络通信协议UDP(User Datagram Protocol)。Socket在计算机网络中扮演着桥梁的角色,它允许应用程序通过网络发送和...

    Java网络编程实例(随书源代码)

    Java网络编程是开发分布式应用程序的关键技术,它允许程序通过网络发送和接收数据。《Java网络编程实例》这本书的源代码提供了丰富的示例,帮助读者深入理解这一领域。本压缩包包含的源代码覆盖了Java网络编程的各种...

Global site tag (gtag.js) - Google Analytics