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

简单的udp服务端和客户端

阅读更多
1.服务端的代码。

  1. package udp; 
  2.  
  3. import java.io.IOException; 
  4. import java.net.DatagramPacket; 
  5. import java.net.DatagramSocket; 
  6. import java.net.InetSocketAddress; 
  7.  
  8. /**
  9. * UDP服务类
  10. */ 
  11. public class UdpServerSocket { 
  12.      
  13.     private byte[] buffer = new byte[1024]; 
  14.     private static DatagramSocket ds = null
  15.     private DatagramPacket packet = null
  16.     private InetSocketAddress socketAddress = null
  17.      
  18.     /**
  19.      * 测试方法
  20.      */ 
  21.     public static void main(String[] args) throws Exception { 
  22.         String serverHost = "127.0.0.1"; 
  23.         int serverPort = 3344; 
  24.         UdpServerSocket udpServerSocket = new UdpServerSocket(serverHost, 
  25.                 serverPort); 
  26.         while (true) { 
  27.             udpServerSocket.receive(); 
  28.             udpServerSocket.response("你好,吃了吗!"); 
  29.         }        
  30.     } 
  31.  
  32.     /**
  33.      * 构造函数,绑定主机和端口
  34.      */ 
  35.     public UdpServerSocket(String host, int port) throws Exception { 
  36.         socketAddress = new InetSocketAddress(host, port); 
  37.         ds = new DatagramSocket(socketAddress); 
  38.         System.out.println("服务端启动!"); 
  39.     } 
  40.  
  41.     /**
  42.      * 接收数据包,该方法会造成线程阻塞
  43.      */ 
  44.     public final String receive() throws IOException { 
  45.         packet = new DatagramPacket(buffer, buffer.length); 
  46.         ds.receive(packet); 
  47.         String info = new String(packet.getData(), 0, packet.getLength()); 
  48.         System.out.println("接收信息:" + info); 
  49.         return info; 
  50.     } 
  51.  
  52.     /**
  53.      * 将响应包发送给请求端
  54.      */ 
  55.     public final void response(String info) throws IOException { 
  56.         System.out.println("客户端地址 : " + packet.getAddress().getHostAddress() 
  57.                 + ",端口:" + packet.getPort()); 
  58.         DatagramPacket dp = new DatagramPacket(buffer, buffer.length, packet 
  59.                 .getAddress(), packet.getPort()); 
  60.         dp.setData(info.getBytes()); 
  61.         ds.send(dp); 
  62.     } 
  63. 2.客户端
  64. 1.package udp; 
    2. 
    3.import java.io.*; 
    4.import java.net.*; 
    5. 
    6./**
    7. * UDP客户端程序,用于对服务端发送数据,并接收服务端的回应信息
    8. */ 
    9.public class UdpClientSocket { 
    10.    private byte[] buffer = new byte[1024]; 
    11. 
    12.    private static DatagramSocket ds = null; 
    13.     
    14.    /**
    15.     * 测试客户端发包和接收回应信息的方法
    16.     */ 
    17.    public static void main(String[] args) throws Exception { 
    18.        UdpClientSocket client = new UdpClientSocket(); 
    19.        String serverHost = "127.0.0.1"; 
    20.        int serverPort = 3344; 
    21.        client.send(serverHost, serverPort, ("你好,亲爱的!").getBytes()); 
    22.        byte[] bt = client.receive(); 
    23.        System.out.println("服务端回应数据:" + new String(bt)); 
    24.        // 关闭连接 
    25.        try { 
    26.            ds.close(); 
    27.        } catch (Exception ex) { 
    28.            ex.printStackTrace(); 
    29.        } 
    30.    } 
    31. 
    32.    /**
    33.     * 构造函数,创建UDP客户端
    34.     */ 
    35.    public UdpClientSocket() throws Exception { 
    36.        ds = new DatagramSocket(8899); // 邦定本地端口作为客户端 
    37.    } 
    38.     
    39.    /**
    40.     * 向指定的服务端发送数据信息
    41.     */ 
    42.    public final void send(final String host, final int port, 
    43.            final byte[] bytes) throws IOException { 
    44.        DatagramPacket dp = new DatagramPacket(bytes, bytes.length, InetAddress.getByName(host), port); 
    45.        ds.send(dp); 
    46.    } 
    47. 
    48.    /**
    49.     * 接收从指定的服务端发回的数据
    50.     */ 
    51.    public final byte[] receive() 
    52.            throws Exception { 
    53.        DatagramPacket dp = new DatagramPacket(buffer, buffer.length); 
    54.        ds.receive(dp);      
    55.        byte[] data = new byte[dp.getLength()]; 
    56.        System.arraycopy(dp.getData(), 0, data, 0, dp.getLength());      
    57.        return data; 
    58.    } 
    59.}


分享到:
评论
2 楼 yangsongjing 2012-06-25  
1320438999 写道
这样看代码好累的,楼主可以放在代码块里面嘛~

嗯 嗯。
1 楼 1320438999 2012-06-22  
这样看代码好累的,楼主可以放在代码块里面嘛~

相关推荐

    udp 服务端和客户端,c++

    总之,C++中实现UDP服务端和客户端涉及套接字编程,需要理解如何创建、绑定、发送和接收数据,以及正确地管理套接字生命周期。在实际应用中,还需考虑错误处理、多线程或异步处理,以及可能的数据完整性问题,因为...

    Unity UDP服务端和客户端代码

    本教程将详细介绍Unity中实现UDP服务端和客户端的代码。 在Unity中,我们通常会使用C#语言编写网络相关的脚本。在提供的文件列表中,有两个关键脚本:`UdpClient.cs` 和 `UdpServer.cs`。它们分别对应UDP服务端和...

    mfc udp服务端与客户端

    本项目涉及到的是使用MFC实现的UDP服务端和客户端,这是一种基于无连接的网络通信协议,适用于实时数据传输或对丢包不敏感的应用场景。 首先,让我们深入理解标题中的“mfc udp服务端与客户端”。在UDP(User ...

    UDP服务端和客户端代码 客户端发送数据 服务端接受数据

    UDP服务端和客户端代码 客户端发送数据 服务端接受数据

    一个UDP服务端和客户端程序,可以用来测试一下硬件通信模组否可用。

    本项目提供了一个UDP服务端和客户端的实现,目的是为了测试硬件通信模组的功能,特别是针对NB-IoT(窄带物联网)终端模组的通信能力。 首先,让我们深入了解一下UDP服务端。UDP服务端负责监听特定的端口,等待来自...

    在QT下的UDP服务器和客户端的简单DEMO

    本DEMO展示了如何在QT环境下使用UDP进行通信,即创建一个简单的UDP服务器和客户端,实现数据的双向传输。 首先,让我们从`main.cpp`开始。这个文件是程序的入口点,通常包含了应用的主要逻辑和窗口对象的实例化。在...

    Qt-UDP服务端与客户端(简单Demo)

    【Qt-UDP服务端与客户端(简单Demo)】 在IT领域,网络通信是软件开发中的重要组成部分,而UDP(User Datagram Protocol,用户...通过实践这个简单的UDP服务端和客户端Demo,你将能更好地理解和掌握Qt中的网络编程。

    Linux UDP服务端和客户端程序的实现

    Linux UDP服务端和客户端程序的实现 Linux UDP服务端和客户端程序的实现是指在Linux操作系统中,使用UDP协议实现服务端和客户端之间的通信。在此实现中,我们将详细介绍服务端和客户端程序的编写过程,并提供示例...

    UDP服务端客户端

    在UDP服务端和客户端的交互中,客户端可以向服务端发送命令,服务端接收到命令后进行处理并可能返回响应。下面我们将深入探讨UDP服务端和客户端的实现及其工作原理。 ### UDP协议基础 UDP协议不建立连接,而是直接...

    TCP server and client source.rar_TCP、UDP服务端和客户端的源程序_tcp_udp serv

    本压缩包包含的是TCP和UDP服务端及客户端的源代码,提供了一个实践和学习网络编程的良好平台。 TCP是一种面向连接的、可靠的传输协议,它确保了数据包按照发送顺序到达目的地,并且在数据传输过程中提供错误检测和...

    UDP服务端与客户端之间相互通信

    UDP服务端通常需要创建一个Socket对象,并绑定到特定的IP地址和端口号。在C#中,可以使用`System.Net.Sockets.UdpClient`类来实现。例如,在`UDPNetwork_Server.txt`中,可能包含以下代码: ```csharp UdpClient ...

    UDP通讯(服务端及客户端)(C#)

    以下是一个简化的C# UDP服务端和客户端的代码示例: ```csharp // 服务端 using System; using System.Net; using System.Net.Sockets; class UDPServer { static void Main() { UdpClient server = new Udp...

    TCP服务端和TCP客户端工具软件

    本篇文章将详细探讨TCP服务端和TCP客户端的概念、工作原理以及常用的工具软件。 TCP服务端是网络应用程序,它等待来自网络的连接请求,并在接收到请求后提供服务。服务端通常运行在一个特定的IP地址和端口号上,这...

    基于UDP协议的简单服务端和客户端示例

    通过阅读和分析这些代码,你可以深入理解UDP协议在实际应用中的工作原理,并学习如何使用C++编写UDP服务端和客户端程序。这将有助于提升你在网络编程领域的技能,尤其是在实时流媒体、在线游戏和分布式系统等领域。

    UDP 服务端和客服端测试程序

    在UDP服务端和客户端的测试程序中,我们可以深入理解UDP协议的工作原理及其在Delphi编程环境下的实现。 首先,UDP协议不提供连接建立和释放过程,因此它没有TCP那样的三次握手和四次挥手。这意味着UDP通信可以迅速...

    udp传输服务端和客户端

    UDP(User Datagram Protocol...以上就是关于“udp传输服务端和客户端”的核心知识点,理解和掌握这些内容对于进行UDP编程至关重要。在实际开发中,我们需要根据具体应用场景选择合适的协议,并充分考虑其特性和限制。

    UDP助手服务端和客户端通用

    总的来说,"UDP助手服务端和客户端通用"意味着这个工具提供了一种简单、高效的方式来处理基于UDP的网络通信,无论是在服务器端还是客户端,都能轻松部署和使用。通过"NSyUDP.exe",用户可以体验到 UDP 协议带来的...

    TCP和UDP服务端和客户端JAVA源码

    简单的JAVA实现的TCP和UDP接收和发送源代码。

    NetAssist网络调试助手,是Windows平台下开发的TCP/IP网络调试工具,集TCP/UDP服务端及客户端于一体,是网

    NetAssist网络调试助手,是Windows平台下开发的TCP/IP网络调试工具,集TCP/UDP服务端及客户端于一体,是网络应用开发及调试工作必备的专业工具之一,可以帮助网络应用设计、开发、测试人员检查所开发的网络应用软/...

    android_udp服务端与客户端超简单通信实例(附赠得到本地IP的工程代码)

    本篇将深入讲解如何在Android中实现一个简单的UDP服务端与客户端的通信实例,并附带获取本地IP地址的代码。 首先,理解UDP协议的基础特性是至关重要的。UDP是一种无连接的协议,它不建立连接,而是直接将数据包发送...

Global site tag (gtag.js) - Google Analytics