今天看了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(); } } }
相关推荐
Java_network_programming是Java编程语言中一个基础组件,用于实现网络通信。以下是Java网络编程案例教程习题参考答案中涉及到的知识点: 1. Socket编程:Socket是Java网络编程中最基本的组件,用于实现网络通信。...
Java网络编程是Java开发中的一个重要领域,它涉及到Socket编程、TCP/UDP通信协议等多个方面。通过掌握Java网络编程的基础知识和技能,开发者可以构建出功能强大、性能优异的网络应用程序。随着技术的不断发展,Java...
5. **输入/输出流**:网络编程涉及数据的发送和接收,因此理解和掌握I/O流是必需的。例如,InputStream和OutputStream用于处理字节流,而Reader和Writer则用于处理字符流。 6. **URL和URLConnection**:Java的URL类...
### Java网络编程:连接网络数据库的多种方法 #### 摘要 随着互联网技术的不断发展,Java作为一种跨平台、安全且适用于分布式计算环境的语言,在网络应用程序开发中扮演着至关重要的角色。尤其在网络数据库连接方面...
Java网络编程中的UDP(User Datagram Protocol)协议是一种无连接、不可靠的传输协议,与TCP相比,它更注重速度和效率。在这个项目中,我们利用Java的Socket编程接口实现了基于UDP的通信。以下是对相关知识点的详细...
### Java网络编程:连接网络数据库的多种方法 #### 摘要 随着互联网技术的不断发展,Java作为一种跨平台、健壮、安全且适用于分布式计算环境的面向对象编程语言,在网络应用开发领域扮演着极其重要的角色。Java语言...
9. **异常处理**:网络编程中常见的异常有IOException、SocketException等,良好的异常处理机制可以确保程序的健壮性。 10. **网络调试工具**:如telnet、curl和Wireshark等,可以帮助开发者测试和调试网络应用。 ...
7. **异常处理**:网络编程中,必须妥善处理IOException,确保程序的健壮性。 8. **网络安全**: - **加密与解密**:了解基本的加密算法,如AES和RSA,以及如何在Java中实现。 - **认证与授权**:理解身份验证和...
Java的UDP编程
总结,本教程介绍了如何使用Java进行UDP网络编程,特别是如何发送16进制格式的报文。通过结合Base64编码,可以实现将大型数据(如图片)分块发送。实践中,需要考虑数据完整性和网络环境的可靠性,以及服务端的数据...
下面将详细介绍Java进行UDP编程的相关知识点。 **一、UDP的特点** 1. **无连接性**:UDP不建立连接,直接发送数据,因此速度快,但可能会丢失数据或顺序错乱。 2. **不可靠性**:UDP不保证数据包的接收,也不检测和...
Java UDP套接字网络编程是Java编程领域中的一个重要部分,主要涉及如何利用Java的Socket类库来实现基于用户数据报协议(User Datagram Protocol)的通信。UDP是一种无连接的、不可靠的传输协议,适用于对实时性要求...
《Java网络编程(第4版)》是一本深入探讨Java平台上的网络编程技术的专业书籍,适合想要提升Java通讯技术的学者阅读。此书全面覆盖了Java网络编程的基础和高级概念,帮助开发者理解如何利用Java语言构建高效、可靠的...
Java网络编程是计算机科学中的一个重要领域,特别是在软件开发中,它涉及到如何通过网络进行数据传输和通信。在Java中,网络编程主要依赖于Java的Socket编程、ServerSocket、URL类以及NIO(非阻塞I/O)等核心API。这...
Java网络编程:Applet、Socket/TCP/UDP、NIO、RMI、CORBA。Java高级特性:反射、泛型、注释符、自动装箱和拆箱、枚举类、可变参数、可变返回类型、增强循环、静态导入。随书附赠光盘内容为《Java高手真经(编程基础卷...
Java网络编程中的UDP(User Datagram Protocol)是一种无连接的、不可靠的传输协议,它相比TCP(Transmission Control Protocol)在速度上更快,因为不需要建立和维护连接,也不保证数据包的顺序和可靠性。UDP适用于...
1. **Java网络编程基础**:首先,书中会介绍Java中的Socket编程,包括TCP和UDP协议的基础知识,以及如何使用Java的Socket和ServerSocket类创建客户端和服务器端的连接。 2. **I/O与NIO**:Java的I/O流系统是网络...
Java Socket编程实现UDP网络测试是计算机网络领域中的一个重要实践,主要涉及到Java编程语言以及网络通信协议UDP(User Datagram Protocol)。Socket在计算机网络中扮演着桥梁的角色,它允许应用程序通过网络发送和...
Java网络编程是开发分布式应用程序的关键技术,它允许程序通过网络发送和接收数据。《Java网络编程实例》这本书的源代码提供了丰富的示例,帮助读者深入理解这一领域。本压缩包包含的源代码覆盖了Java网络编程的各种...