`
JasonShieh
  • 浏览: 528577 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JAVA UDP传输数据

阅读更多
import java.net.*;
import javax.swing.*;
import java.awt.event.*;
class 主机1Frame extends JFrame implements Runnable,ActionListener
{  JTextField out_message=new JTextField("发送数据到主机2:");
   JTextArea in_message=new JTextArea();
   JButton b=new JButton("发送数据包到主机2");
   主机1Frame()
   {  super("我是主机1");
      setSize(200,200);setVisible(true);
      b.addActionListener(this);
      add(out_message,"South");add(in_message,"Center");add(b,"North");
      Thread thread=new Thread(this);
      thread.start();//线程负责接收数据包
   }
   public void actionPerformed(ActionEvent event) //点击按扭发送数据包
   {  byte buffer[]=out_message.getText().trim().getBytes();
      try{  InetAddress address=InetAddress.getByName("127.0.0.1");
DatagramPacket data_pack=
new DatagramPacket(buffer,buffer.length, address,888);
            DatagramSocket mail_data=new DatagramSocket();
            in_message.append("数据报目标主机地址:"+data_pack.getAddress()+"\n");
            in_message.append("数据报目标端口是:"+data_pack.getPort()+"\n");
            in_message.append("数据报长度:"+data_pack.getLength()+"\n");
            mail_data.send(data_pack);
          }
      catch(Exception e){}    
   }
   public void run() //接收数据包
   {  DatagramPacket pack=null;
      DatagramSocket mail_data=null;
      byte data[]=new byte[8192];
      try{  pack=new DatagramPacket(data,data.length);
            mail_data=new DatagramSocket(666);
         }
      catch(Exception e){}
      while(true)  
         {  if(mail_data==null) break;
            else
               try{  mail_data.receive(pack);
                     int length=pack.getLength();
                     InetAddress adress=pack.getAddress();
                     int port=pack.getPort();
                     String message=new String(pack.getData(),0,length);
                     in_message.append("收到数据长度:"+length+"\n");
                     in_message.append("收到数据来自:"+adress+"端口:"+port+"\n");
                     in_message.append("收到数据是:"+message+"\n");
                  }
               catch(Exception e){}
         }
   }
}
public class 主机1
{  public static void main(String args[])
   {  主机1Frame 主机1win=new 主机1Frame();
      主机1win.validate();
   }
}




Java codeimport java.net.*;
import javax.swing.*;
import java.awt.event.*;
class 主机2Frame extends JFrame implements Runnable,ActionListener
{  JTextField out_message=new JTextField("发送数据到主机1:");
   JTextArea in_message=new JTextArea();
   JButton b=new JButton("发送数据包到主机1");
   主机2Frame()
   {  super("我是主机2");
      setSize(200,200);setVisible(true);
      b.addActionListener(this);
      add(out_message,"South");add(in_message,"Center");add(b,"North");
      Thread thread=new Thread(this);
      thread.start();//线程负责接收数据包
   }
   public void actionPerformed(ActionEvent event)
   {  byte buffer[]=out_message.getText().trim().getBytes();
      try{  InetAddress address=InetAddress.getByName("127.0.0.1");
DatagramPacket data_pack=
new DatagramPacket(buffer,buffer.length, address,666);
            DatagramSocket mail_data=new DatagramSocket();
            in_message.append("数据报目标主机地址:"+data_pack.getAddress()+"\n");
            in_message.append("数据报目标端口是:"+data_pack.getPort()+"\n");
            in_message.append("数据报长度:"+data_pack.getLength()+"\n");
            mail_data.send(data_pack);
         }
       catch(Exception e){}  
   }
   public void run()
   {  DatagramSocket mail_data=null;
      byte data[]=new byte[8192];
      DatagramPacket pack=null;
     try{
           pack=new DatagramPacket(data,data.length);
           mail_data=new DatagramSocket(888);
         }
     catch(Exception e){}
     while(true)  
       {  if(mail_data==null) break;
          else
           try{  mail_data.receive(pack);
                 int length=pack.getLength();
                InetAddress adress=pack.getAddress();
                int port=pack.getPort();
   String message=new String(pack.getData(),0,length);
                in_message.append("收到数据长度:"+length+"\n");
                in_message.append("收到数据来自:"+adress+"端口:"+port+"\n");
                in_message.append("收到数据是:"+message+"\n");
              }
           catch(Exception e){}
       }
   }
}
public class 主机2
{   public static void main(String args[])
   {  主机2Frame 主机2win=new 主机2Frame();
       主机2win.validate();
   }
}
分享到:
评论

相关推荐

    基于UDP的Java大数据传输

    UDP传输的优点是快捷,因为它是没有安全保证的。有一定的丢失率。而且,由于各包的传输路径不同,后发送的包可能先于先发送的包到达。所以,如果发送大量的数据,就需要进行检错。当然,还得保证快捷的传输。 我就是...

    java udp视频传输

    Java UDP视频传输是一种基于用户数据报协议(User Datagram Protocol)的实时数据传输方式。UDP相较于TCP,具有更低的延迟和更高的传输效率,因为其不保证数据包的顺序、不进行重传,所以适用于对实时性要求高的应用...

    UDP协议传输数据Java简单实现

    以上就是Java实现UDP协议传输数据的基本流程。在实际应用中,可能需要考虑错误处理、多线程(分别处理发送和接收)、数据格式的解析和序列化等问题。对于初学者来说,理解这些基本概念并逐步实践是非常重要的,而...

    基于java的UDP数据传输

    【标题】基于Java的UDP数据传输 在计算机网络通信中,UDP(User Datagram Protocol,用户数据报协议)是一种无连接的、不可靠的传输层协议,它提供了比TCP(Transmission Control Protocol,传输控制协议)更快的...

    java使用udp协议和硬件进行数据收发处理

    Java网络编程中,UDP(User Datagram Protocol)是一种无连接的、不可靠的传输协议,它在TCP/IP协议栈中位于传输层。与TCP相比,UDP更轻量级,速度快,适合于对实时性要求较高的应用,如视频通话、在线游戏等。本篇...

    java Udp 收发结构体实例 Socket编程

    Java UDP(用户数据报协议)收发结构体实例与Socket编程是网络通信中的重要主题,尤其是在需要高效、无连接的数据传输场景下。UDP是一种无连接的传输层协议,相较于TCP,它提供了更低的延迟和更高的吞吐量,但不保证...

    基于Java实现de UDP数据传输,双向传输,接收端和发送端,服务器

    UDP是面向非连接的,UDP传输的是数据报只负责传输信息,不保证信息一定收到,虽然安全性不如TCP(面向连接、用Socket进行通信),但是性能较好。 从简单到复杂,首先简单介绍一下怎么利用UDP实现客服端发送消息给...

    Java实现udp协议的文件传输

    总之,Java实现UDP协议的文件传输需要理解UDP的特点,并合理地处理数据分块、重组、错误检测和恢复等问题。通过这样的实现,我们可以构建一个简单但高效的实时文件传输系统,满足视频文件等大容量数据的快速传输需求...

    udp数据包,完全分析

    这是udp数据包,用**捕获的,可以研究,一下对协议分析很有帮助,试试了

    udp传输数据

    UDP(User Datagram Protocol)是一种无连接的、不可靠的传输层协议,它是Internet协议簇中的一个部分。在Java中,我们可以使用Java套接字(Socket)API中的DatagramSocket类来实现UDP通信。这个API提供了发送和接收...

    java实现基于netty 的udp字节数据接收服务

    本示例关注的是如何利用Netty实现一个基于UDP(User Datagram Protocol)的数据接收服务,这在需要进行快速、无连接的数据传输场景中非常常见。以下是对这个主题的详细讲解: 首先,我们需要理解UDP的基础知识。UDP...

    java接听UDP广播

    Java UDP(用户数据报协议)是网络编程中的一个重要部分,尤其在需要低延迟、无连接通信的场景下。本文将详细讲解如何使用Java来实现一个UDP广播监听器,以接收并处理UDP广播数据。 首先,我们需要理解UDP的基本...

    TCP/UDP 传输数据

    本篇将详细阐述TCP和UDP协议的工作原理、特性以及它们在数据传输中的实现。 TCP,即传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议。它通过三次握手建立连接,并在连接建立后进行数据传输,...

    udt-java 可靠UDP传输 源码

    UDT(UDP-based Data Transfer Protocol)是为了解决TCP在大数据传输时的效率问题而设计的一种用户数据报协议(UDP)上...同时,这个项目也是研究可靠UDP传输的一个很好的实例,有助于提升对网络协议和系统设计的理解。

    UDP传输文件(java)

    标题中的“UDP传输文件(java)”指的是使用Java编程语言实现基于用户数据报协议(User Datagram Protocol, UDP)的文件传输功能。UDP是一种无连接的、不可靠的传输层协议,它比TCP(传输控制协议)更轻量级,适合于...

    Java基于UDP传输协议的简单聊天室

    Java基于UDP传输协议的简单聊天室是一个典型的网络编程示例,它涵盖了多个核心知识点,包括Java的Socket编程、用户数据报协议(UDP)以及JSON数据格式的使用。在这个项目中,我们将深入理解这些概念并探讨如何将它们...

    android udp传输实例

    下面将详细探讨Android UDP传输的实现及其相关知识点。 首先,我们要了解在Android中如何创建UDP套接字。Android系统提供了`java.net.DatagramSocket`类来处理UDP通信。创建一个UDP套接字可以使用`DatagramSocket()...

    JAVA Udp调试工具 Java版本

    UDP是一种无连接的传输协议,常用于需要高效传输且对数据完整性要求不高的场景,如在线视频流、实时游戏等。该工具通常包含发送和接收UDP数据包的功能,帮助开发者检查网络通信的正确性。 在给定的压缩包`UdpSend...

    提高UDP传输效率的实例

    UDP(User Datagram Protocol)是一种无连接的、不可靠的传输层协议,它的设计目标是提供快速、简单且轻量级的通信方式。...提供的“提高UDP传输效率的小例子”应该包含具体的实现代码和说明,供学习者参考和实践。

    UDP.rar_JAVA UDP_UDP 鏂囦欢浼犺緭_java 文件传输_udp ja

    在TCP/IP协议栈中,UDP提供了不可靠的数据传输服务,不保证数据包的顺序、不保证数据包的到达,也不进行流量控制和拥塞控制。这种特性使得UDP在某些场景下非常有用,例如实时视频流、在线游戏等对延迟敏感的应用。 ...

Global site tag (gtag.js) - Google Analytics