Java网络编程UDP协议发送接收数据

本文实例为大家分享了Java网络编程UDP协议发送接收数据的具体代码,供大家参考,具体内容如下

UDP协议发送数据步骤

A:创建发送端socket对象;

B:创建数据,并把数据打包;

C:调用socket对象的发送方法发送数据包;

D:释放资源

package net;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class SendDemo {
 public static void main(String[] args) throws IOException {
  //A
  DatagramSocket ds = new DatagramSocket();

  //B
  byte[] by = "Hello,UDP".getBytes();
  int length = by.length;
  InetAddress addr = InetAddress.getByName("192.168.1.22");
  int port = 10010;
  DatagramPacket dp = new DatagramPacket(by, length, addr, port);

  //C
  ds.send(dp);

  //D
  ds.close();

 }
}

UDP协议接收数据步骤

A:创建接收端socket对象;

B:创建一个数据包(接收容器);

C:调用socket对象的接收方法接收数据;

D:解析数据,显示到控制台;

E:释放资源

package net;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class ReceiveDemo {
 public static void main(String[] args) throws IOException {
  //A
  DatagramSocket ds = new DatagramSocket(10010);

  //B
  byte[] by = new byte[1024];
  int length = by.length;
  DatagramPacket dp = new DatagramPacket(by, length);

  //C
  ds.receive(dp);

  //D
  //获取对方ip
  InetAddress addr = dp.getAddress();
  String ip = addr.getHostAddress();
  byte[] by2 = dp.getData();
  int len = by2.length;
  String s = new String(by2, 0, len);
  System.out.println(ip+"发送的数据是:"+s);

  //E
  ds.close();
 }
}

先运行接收端代码,再运行发送端代码。

多次从键盘接收发送数据版本

package net;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class SendDemo {
 public static void main(String[] args) throws IOException {
  //A
  DatagramSocket ds = new DatagramSocket();
  //数据来自键盘录入
  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  String line = null;
  while((line = br.readLine()) != null){
   //当输入jieshu时,结束
   if("jieshu".equals(line)){
    break;
   }
   //B
   byte[] by = line.getBytes();
   int length = by.length;
   InetAddress addr = InetAddress.getByName("192.168.1.22");
   int port = 10010;
   DatagramPacket dp = new DatagramPacket(by, length, addr, port);

   //C
   ds.send(dp);
  }
  //D
  ds.close();

 }
}
package net;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class ReceiveDemo {
 public static void main(String[] args) throws IOException {
  //A
  DatagramSocket ds = new DatagramSocket(10010);
  //多次接受版本
  while(true){
   //B
   byte[] by = new byte[1024];
   int length = by.length;
   DatagramPacket dp = new DatagramPacket(by, length);

   //C
   ds.receive(dp);

   //D
   //获取对方ip
   InetAddress addr = dp.getAddress();
   String ip = addr.getHostAddress();
   byte[] by2 = dp.getData();
   int len = by2.length;
   String s = new String(by2, 0, len);
   System.out.println(ip+"发送的数据是:"+s);
  }

  //E
  //ds.close();
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • java编程实现基于UDP协议传输数据的方法

    本文实例讲述了java编程实现基于UDP协议传输数据的方法.分享给大家供大家参考,具体如下: UDP协议(User Datagram Protocol,用户数据报协议)不同于TCP协议,它是不可能靠的,但是它比TCP协议具有更快的传输速度,UDP发送的数据单元称为数据报,当网络传输UDP传输UDP数据报是无法保证数据能够到达目的地,也无法保证按发送的顺序到达目的地,也就是说先发送了"hello",再发送了"world",但接收方可能会先收到"world&q

  • Java NIO实例UDP发送接收数据代码分享

    Java的NIO包中,有一个专门用于发送UDP数据包的类:DatagramChannel,UDP是一种无连接的网络协议, 一般用于发送一些准确度要求不太高的数据等. 完整的服务端程序如下: public class StatisticsServer { //每次发送接收的数据包大小 private final int MAX_BUFF_SIZE = 1024 * 10; //服务端监听端口,客户端也通过该端口发送数据 private int port; private DatagramChann

  • java利用udp实现发送数据

    本文实例为大家分享了java利用udp实现发送数据的具体代码,供大家参考,具体内容如下 1.udp的特点 数据以包的形式发送数据 udp是面向无连接的 udp会丢失数据,是一种不安全的连接 udp的传输速度较快 2.发送端 package cn.uu710.SocketTest; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.

  • Java网络编程UDP协议发送接收数据

    本文实例为大家分享了Java网络编程UDP协议发送接收数据的具体代码,供大家参考,具体内容如下 UDP协议发送数据步骤 A:创建发送端socket对象: B:创建数据,并把数据打包: C:调用socket对象的发送方法发送数据包: D:释放资源 package net; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAd

  • Java网络编程UDP实现消息发送及聊天

    TCP可以实现聊天,UDP也可以实现消息发送及聊天.不同的是,TCP需要有服务端和客户端的连接,但UDP不需要,只需要有发送方和接收方即可. 一.实现消息发送 发送方: package com.kuang.lesson03; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; //不需要连接服务器

  • Java网络编程UDP实现多线程在线聊天

    本文实例为大家分享了Java实现多线程在线聊天的具体代码,供大家参考,具体内容如下 上一篇博客通过UDP实现了聊天,但只能单方面发送消息,这次实现了多线程在线聊天,也就是可以双方互发消息. 发送消息: package com.kuang.chat; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.DatagramPacket;

  • java实现基于UDP协议网络Socket编程(C/S通信)

    一.前言:认识UDP UDP,全称User Datagram Protocol(用户数据报协议),是Internet 协议集支持一个无连接的传输协议.UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法. UDP主要用于不要求分组顺序到达的传输中,分组传输顺序的检查与排序由应用层完成,提供面向报文的简单不可靠信息传送服务.UDP 协议基本上是IP协议与上层协议的接口,适用端口分别运行在同一台设备上的多个应用程序. 二.UDP的特点(与TCP相比) 正是UDP提供不可靠服务

  • Python 网络编程之UDP发送接收数据功能示例【基于socket套接字】

    本文实例讲述了Python 网络编程之UDP发送接收数据功能.分享给大家供大家参考,具体如下: demo.py(UDP发送数据): import socket # 导入socket模块 def main(): # 创建一个udp套接字 udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 绑定本机ip和端口号 (发送数据时,如果不绑定,系统会随机分配端口号.接收数据时,一般需要手动绑定ip和端口) udp_socket.b

  • Java网络编程之基于TCP协议

    一.单向通信 功能:客户端发送一句话到服务器: 客户端: public class TestClient {//客户端 //这是一个main方法,是程序的入口: public static void main(String[] args) throws IOException { //1.创建套接字:指定服务器的ip和端口号: Socket s = new Socket("192.168.199.217",8888); //2.对于程序员来说,向外发送数据 感受 -->利用输出流

  • python UDP(udp)协议发送和接收的实例

    需要建立2个文件,一个作为客户端,一个作为服务端 文件一 作为客户端client,文件二作为服务端server udp的特点是不需要建立连接 文件一客户端 #不需要建立连接 import socket #创建socket对象 #SOCK_DGRAM udp模式 s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) #发送数据 字节 s.sendto("你好".encode(),("169.254.184.146",800

  • 详解Java网络编程

    一.网络编程 1.1.概述 1.计算机网络是通过传输介质.通信设施和网络通信协议,把分散在不同地点的计算机设备互连起来,实现资源共享和数据传输的系统.网络编程就就是编写程序使联网的两个(或多个)设备(例如计算机)之间进行数据传输.Java语言对网络编程提供了良好的支持,通过其提供的接口我们可以很方便地进行网络编程. 2.Java是 Internet 上的语言,它从语言级上提供了对网络应用程 序的支持,程序员能够很容易开发常见的网络应用程序. 3.Java提供的网络类库,可以实现无痛的网络连接,联

  • Java网络编程基础详解

    目录 网络编程 1.1 概述 1.2.网络通信的要素 1.网络编程中有两个主要的问题 2.网络编程中的三要素 1.3.IP 1.4.端口 1.5.通信协议 UDP协议 TCP协议 1.6.TCP模拟通信 客户端 服务器 文件上传 1.7.UDP 1.8.URL 实例: 总结 网络编程 1.1 概述 1.2.网络通信的要素 如何实现网络通信? 1.网络编程中有两个主要的问题 如何定位到网络上的一台或者多台主机 使用cmd-->ping命令,ping一个域名,可以看到访问的主机的IP地址 [外链图片

随机推荐