UDP的理论不再多说,我这里直接给出一个关于UDP的HelloWorld程序,代码明了,希望对刚入门的学生有所帮助!
当然,实际上,在这块我也刚入门!
首先写服务端代码,服务端邦定本地的IP和端口来监听访问:
package udp; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetSocketAddress; /** * UDP服务类 */ public class UdpServerSocket { private byte[] buffer = new byte[1024]; private static DatagramSocket ds = null; private DatagramPacket packet = null; private InetSocketAddress socketAddress = null; /** * 测试方法 */ public static void main(String[] args) throws Exception { String serverHost = "127.0.0.1"; int serverPort = 3344; UdpServerSocket udpServerSocket = new UdpServerSocket(serverHost, serverPort); while (true) { udpServerSocket.receive(); udpServerSocket.response("你好,吃了吗!"); } } /** * 构造函数,绑定主机和端口 */ public UdpServerSocket(String host, int port) throws Exception { socketAddress = new InetSocketAddress(host, port); ds = new DatagramSocket(socketAddress); System.out.println("服务端启动!"); } /** * 接收数据包,该方法会造成线程阻塞 */ public final String receive() throws IOException { packet = new DatagramPacket(buffer, buffer.length); ds.receive(packet); String info = new String(packet.getData(), 0, packet.getLength()); System.out.println("接收信息:" + info); return info; } /** * 将响应包发送给请求端 */ public final void response(String info) throws IOException { System.out.println("客户端地址 : " + packet.getAddress().getHostAddress() + ",端口:" + packet.getPort()); DatagramPacket dp = new DatagramPacket(buffer, buffer.length, packet .getAddress(), packet.getPort()); dp.setData(info.getBytes()); ds.send(dp); } }
运行后提示服务端运行成功,程序开始监听端口,接收方法堵塞,当有访问时才会向下进行!
我们写客户端进行访问,看到网上的例子都是直接创建了 DatagramSocket 对象,而其实自己都不知道自己使用的端口是那个,这里我创建时会指定自己邦定的端口,其实很简单,就是初始化该对象时传递一个端口参数。
这里你访问客户端时客户端会打印你的IP和端口!
看一看客户端代码:
package udp; import java.io.*; import java.net.*; /** * UDP客户端程序,用于对服务端发送数据,并接收服务端的回应信息 */ public class UdpClientSocket { private byte[] buffer = new byte[1024]; private static DatagramSocket ds = null; /** * 测试客户端发包和接收回应信息的方法 */ public static void main(String[] args) throws Exception { UdpClientSocket client = new UdpClientSocket(); String serverHost = "127.0.0.1"; int serverPort = 3344; client.send(serverHost, serverPort, ("你好,亲爱的!").getBytes()); byte[] bt = client.receive(); System.out.println("服务端回应数据:" + new String(bt)); // 关闭连接 try { ds.close(); } catch (Exception ex) { ex.printStackTrace(); } } /** * 构造函数,创建UDP客户端 */ public UdpClientSocket() throws Exception { ds = new DatagramSocket(8899); // 邦定本地端口作为客户端 } /** * 向指定的服务端发送数据信息 */ public final void send(final String host, final int port, final byte[] bytes) throws IOException { DatagramPacket dp = new DatagramPacket(bytes, bytes.length, InetAddress.getByName(host), port); ds.send(dp); } /** * 接收从指定的服务端发回的数据 */ public final byte[] receive() throws Exception { DatagramPacket dp = new DatagramPacket(buffer, buffer.length); ds.receive(dp); byte[] data = new byte[dp.getLength()]; System.arraycopy(dp.getData(), 0, data, 0, dp.getLength()); return data; } }
直接运行程序看效果!
请您到ITEYE看我的原创:http://cuisuqiang.iteye.com
或支持我的个人博客,地址:http://www.javacui.com
相关推荐
基于UDP协议的简单服务端和客户端,C++源代码
Qt实战TCP/UDP服务端与客户端源码,Qt使用TCP/UDP服务端与客户端通信。QTcpSocket和QtService使用示例。
一个UDP服务器程序,可以用来测试一下硬件客户端是否可用。 之前来用测试NB终端模组的消息可不可抵达,测试成功率等。 需要部署到服务器使用,或者是局域网内使用,方便硬件工程师自己测试通信模组。
主要介绍了Linux UDP服务端和客户端程序的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要介绍了golang实现简单的udp协议服务端与客户端,结合实例形式分析了基于UDP协议的数据传输相关实现技巧,需要的朋友可以参考下
主要介绍了udp socket客户端和udp服务端程序示例,需要的朋友可以参考下
本文实例讲述了PHP编程实现的TCP服务端和客户端功能。分享给大家供大家参考,具体如下... * 创建一个SOCKET * AF_INET=是ipv4 如果用ipv6,则参数为 AF_INET6 * SOCK_STREAM为socket的tcp类型,如果是UDP则使用SOCK_D
使用Springboot开发的Udp打洞 我的博客中有详细讲解 这是博客附带的示例(内含客户端jar包和服务端jar包 带说明文档 小白都能操作)
一、创建UDP服务器和客户端 服务端: const dgram = require('dgram'); //创建upd套接字 //参数一表示套接字类型,'udp4' 或 'udp6' //参数二表示事件监听函数,'message' 事件监听器 let server = dgram.create...
用 Qt 实现 UDP 简单的广播示例,通过QUdpSocket 类,这里实现两个工程,服务端和客户端,由服务器端发送广播消息到每个客户端接收显示。
C# 简单的使用UdpClient实现数据传送的示例。 使用VS2008编写。 适合初学者,有服务端和客户端。
主要给大家介绍了关于Spring Boot集成netty实现客户端服务端交互的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
自己用MFC对话框程序实现的基于UDP的socket编程示例,分为客户端和服务端,客户端发送一个字符串,服务端接收。代码简单明了,无论是学习还是拿到自己的项目中使用都很好。
一个基于UDP协议通信的简单例子,包括服务端和客户端,客户端向服务端发送数据,服务端收到数据后向客户端返回数据。
本文实例讲述了Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能。分享给大家供大家参考,具体如下: 由于目前工作的需要,需要在IPv4和IPv6两种网络模式下TCP和UDP的连接,要做到客户端发包,服务端收...
udp通信的示例,包括客户端和服务端。 可以在window和linux上运行。
一个基于 ENet 的简单 UDP 客户端/服务器。 聊天示例 使用 ,创建一个新项目并用服务器或客户端的那些覆盖现有的main.cpp 、 ofApp.h 、 ofApp.cpp 。 创建Network目录并将此存储库的src放在那里。 命令行参数 ...
今天与大家分享一个VC TCP服务端程序的编写实例,运行TCP/UDP的原理实现的一个服务端的程序示例,帮且VC 初学者了解网络的基本原理,测试时候可以选择是使用TCP或是UDP协议,虽然简单,不过可以向大家展示不少的网络...