`

一个简单的Java UDP协议通信的例子

    博客分类:
  • java
 
阅读更多

参考: 【串口通信一】经过检验的串口通信协议

一个简单的Java UDP协议通信的例子 

server:

import java.net.*;

public class UDPServer {
    private static final int PORT = 5000;
    private DatagramSocket dataSocket;
    private DatagramPacket dataPacket;
    private byte receiveByte[];
    private String receiveStr;

    public UDPServer() {
        Init();
    }

    public void Init() {
        try {
            dataSocket = new DatagramSocket(PORT);
            receiveByte = new byte[1024];
            dataPacket = new DatagramPacket(receiveByte, receiveByte.length);
            receiveStr = "";
            int i = 0;
            while (i == 0)// 无数据,则循环

            {
                dataSocket.receive(dataPacket);
                i = dataPacket.getLength();
                // 接收数据

                if (i > 0) {
                    // 指定接收到数据的长度,可使接收数据正常显示,开始时很容易忽略这一点

                    receiveStr = new String(receiveByte, 0, dataPacket.getLength());
                    System.out.println(receiveStr);
                    i = 0;// 循环接收

                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String args[]) {
        new UDPServer();
    }
}


client:

import java.io.*;
import java.net.*;

public class UDPClient {
    private static final int PORT = 4561;
    private DatagramSocket dataSocket;
    private DatagramPacket dataPacket;
    private byte sendDataByte[];
    private String sendStr;

    public UDPClient() {
        Init();
    }

    public void Init() {
        try {
            // 指定端口号,避免与其他应用程序发生冲突

            dataSocket = new DatagramSocket(PORT+1);
            sendDataByte = new byte[1024];
            sendStr = "UDP方式发送数据";
            sendDataByte = sendStr.getBytes();
            dataPacket = new DatagramPacket(sendDataByte, sendDataByte.length,
                    InetAddress.getByName("localhost"), PORT);
            dataSocket.send(dataPacket);
        } catch (SocketException se) {
            se.printStackTrace();
        } catch (IOException ie) {
            ie.printStackTrace();
        }
    }

    public static void main(String args[]) {
        new UDPClient();
    }
}

 
分享到:
评论

相关推荐

    Java中的UDP协议编程

    Java中实现UDP协议编程详细文档,详解了在Java中使用UDP协议编程的相关类,给出一个UDP的服务端和客户端交互通信的例子,服务端循环等待客户端发送的信息,并对其进行回应,客户端向服务端发送信息,并接收服务端的...

    JAVA读写PLC物联网Modbus RTU Modbus TCP Modbus UDP通信,JAVA与Modbus通信源码

    Modbus允许多个 (大约240个) 设备连接在同一个网络上进行通信,举个例子,一个由测量温度和湿度的装置,并且将结果发送给计算机。Modbus支持的具体协议有:Modbus TCP、Modbus UDP、Modbus RTU、ModbusRtuOverTcp、...

    欧姆龙以太网通讯TCP_UDP例子及欧姆龙PLC程序例子说明.zip

    欧姆龙TCP/UDP网络通讯例子,通讯的每个节点都有详细说明,还有欧姆龙PLC程序例子,以及中文版通讯功能块。

    java编程socket通信

    这是个很全面的java写的socket通信,使用套接字实现基于TCP协议的服务器和客户机程序,还有个UDP协议的例子。文档很详细。

    java源码包---java 源码 大量 实例

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    JAVA上百实例源码以及开源项目

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    JAVA上百实例源码以及开源项目源代码

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    java源码包4

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...

    java源码包3

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...

    java源码包2

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Tcp服务端与客户端的JAVA实例源代码 2个目标文件 摘要:Java源码,文件操作,TCP,服务器 Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Tcp服务端与客户端的JAVA实例源代码 2个目标文件 摘要:Java源码,文件操作,TCP,服务器 Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    对Java语言的每个语法都提供了一个或多个例程讲解 大量使用流程图表示程序的执行过程,使用结构图表示程序的内部状态 每章最后都给出了典型的练习题,让读者及时练习,巩固提高,并提供了参考答案 目录 第1篇 ...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    对Java语言的每个语法都提供了一个或多个例程讲解 大量使用流程图表示程序的执行过程,使用结构图表示程序的内部状态 每章最后都给出了典型的练习题,让读者及时练习,巩固提高,并提供了参考答案 目录 第1篇 ...

    java jdk实列宝典 光盘源代码

    滚动的消息,实现一个简单的动画,具有滚动效果的文本消息RollingMessage.java; 三维弹球,BouncingB.java; 贪吃蛇游戏SnakeModel.java; java的声音处理,介绍java中如何处理声音,包括实现响铃,播放wav,au等音频...

    aeron:高效可靠的UDP单播,UDP组播和IPC消息传输

    Aeron 高效可靠的UDP单播,UDP组播和IPC消息传输。 此存储库中提供Java和C ++客户端,而第三方提供了。 这三个客户端都可以非常高效地跨计算机或通过IPC在同一台计算机上交换消息。 消息流可以由模块记录到持久性...

    Java JDK实例宝典

    7 一个简单的文件搜索器 7. 8 读文件 7. 9 写文件 7. 10 添加内容到文件尾 7. 11 文件的分割与合并 7. 12 从键盘接收数据并输出到文件 7. 13 使用StreamTokenizer统计文件的字符数 7. ...

    疯狂JAVA讲义

    1.5 第一个Java程序 12 1.5.1 编辑Java源代码 12 1.5.2 编译Java程序 13 学生提问:当我们使用编译C程序时,不仅需要指定存放目标文件的位置,也需要指定目标文件的文件名,这里使用javac编译Java程序时怎么不...

    h_JAVA 2应用编程150例.rar

    实例55 一个简单的代理服务器 164 实例56 扫描网站信息 173 实例57 远程方法调用 174 实例58 调用JINI方法 176 第5章 Java数据库编程 179 实例59 应用JDBC-ODBC桥 180 实例60 使用单独JDBC连接驱动程序 184 实例61 ...

Global site tag (gtag.js) - Google Analytics