发送端:

package cn.sasa.netDemo1;

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 {
/**
* DatagramPacket 数据报包,用于封装数据
*
* DatagramSoket 用于数据传输
*
* 两者都用于发送和接收
*/ //实现UDP的发送
//1、创建DatagramPacket对象,封装数据、接收的地址和端口
//2、创建DatagramSocket
//3、调用DatagramSocket的send方法发送数据
//4、关闭资源,关闭DatagramSocket
//
byte[] buff = "hello".getBytes();
InetAddress host = InetAddress.getByName("127.0.0.1");
DatagramPacket packet = new DatagramPacket(buff, buff.length, host, 8046); DatagramSocket socket = new DatagramSocket();//发送使用空参构造函数
socket.send(packet);//调用send
socket.close();
} }

接收端:

package cn.sasa.netDemo1;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket; public class ReceiveDemo { public static void main(String[] args) throws IOException {
/**
* UDP的接收端
*
* DatagramPacket 封装数据包,接收数据
*
* DatagramSocket 实现数据传输
*
* 接收步骤:
* 1、创建DatagramSocket,绑定端口号,与发送端的端口号保持一致
* 2、创建字节数组,接收数据
* 3、创建DatagramPacket
* 4、调用DatagramSocket的receive(DatagramPacket p)
* 接收数据放在数据包
* 5、拆包
* 发送端IP
* 接收到的字节长度
* 发送端端口号
* 6、关闭资源
*
*/
//DatagramPacket
DatagramSocket socket = new DatagramSocket(8046);
byte[] buff = new byte[1024];
DatagramPacket packet = new DatagramPacket(buff, buff.length);
socket.receive(packet);
int length = packet.getLength();//接收的字节长度
System.out.println(new String(buff,0,length));
System.out.println(packet.getAddress().getHostAddress()); //打印发送端IP地址
System.out.println(packet.getPort());
socket.close();
} }

java 网络编(二)UDP的传输的更多相关文章

  1. Java网络编程之UDP

    Java网络编程之UDP 一.C/S架构中UDP网络通信流程 ①创建DatagramSocket与DatagramPacket对象 ②建立发送端,接收端 ③建立数据包 ④调用Socket的发送.接收方 ...

  2. java 25 - 4 网络编程之 UDP协议传输思路

    UDP传输 两个类:DatagramSocket与DatagramPacket(具体看API) A:建立发送端,接收端. B:建立数据包. C:调用Socket的发送接收方法. D:关闭Socket. ...

  3. java 25 - 4 网络编程之 UDP协议传输的代码优化

    UDP协议的输出端: /* UDP发送数据: A:创建Socket发送端对象 B:创建数据报包(把数据打包) C:调用Socket对象发送数据报包 D:释放资源(底层是IO流) */ public c ...

  4. java网络编程之UDP通讯

    详细介绍了java中的网络通信机制,尤其是UDP协议,通过对UDP的基本使用进行举例说明如何使用UDP进行数据的发送接收,并举了两个小demo说明UDP的使用注意事项. UDP协议原理图解: UDP协 ...

  5. java 网络编程之UDP通信和简单的群聊程序

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  6. java网络编程之UDP实例

    package Socket; import java.net.DatagramPacket; import java.net.InetAddress; public class Dgram { pu ...

  7. Java网络编程之TCP、UDP

    Java网络编程之TCP.UDP 2014-11-25 15:23 513人阅读 评论(0) 收藏 举报 分类: java基础及多线程(28) 版权声明:本文为博主原创文章,未经博主允许不得转载.   ...

  8. Java网络编程之InetAddress浅析

    Java网络编程之InetAddress浅析 一.InetAddress综述 IP地址是IP使用的32位(IPv4)或者128位(IPv6)位无符号数字,它是传输层协议TCP,UDP的基础.InetA ...

  9. Java网络编程之URL和URI

    Java网络编程之URL与URI 一.URL与URI简介 URI = Universal Resource Identifier 统一资源标志符 URL = Universal Resource Lo ...

  10. 网络编程之UDP编程

    网络编程之UDP编程 UDP协议是一种不可靠的网络协议,它在通信的2端各建立一个Socket,但是这个Socket之间并没有虚拟链路,这2个Socket只是发送和接受数据的对象,Java提供了Data ...

随机推荐

  1. 基于Java的数据采集(三)

    <基于Java的数据采集(一)>:http://www.cnblogs.com/lichenwei/p/3904715.html <基于Java的数据采集(二)>:http:/ ...

  2. [Python] 08 - Classes --> Objects

    故事背景 一.阶级关系 1. Programs are composed of modules.2. Modules contain statements.3. Statements contain ...

  3. 网络编程 -- RPC实现原理 -- Netty -- 迭代版本V3 -- 编码解码

    网络编程 -- RPC实现原理 -- 目录 啦啦啦 V2——Netty -- pipeline.addLast(io.netty.handler.codec.MessageToMessageCodec ...

  4. oracle 学习笔记(2)创建表空间及用户授权

    原文:http://www.cnblogs.com/smartvessel/archive/2009/07/06/1517690.html Oracle安装完后,其中有一个缺省的数据库,除了这个缺省的 ...

  5. CentOS 6.7 下 Squid 代理服务器 的 安装与配置

    GFW 封锁了 HTTP/Socks5 代理,HTTP 代理是关键词过滤,Socks5 代理则是封锁协议.不过某些特殊的低端口并没有这么处理,已知的有 21,25. 20端口已经被封杀,21端口目前会 ...

  6. 【Docker】容器操作(转)

    来自:https://www.cnblogs.com/zydev/p/5803461.html 列出主机上的容器 列出正在运行的容器:   docker ps 列出所有容器:  docker ps - ...

  7. Use a load-balancer as a first row of defense against DDOS

    We’ve seen recently more and more DOS and DDOS attacks. Some of them were very big, requiring thousa ...

  8. Django读取Mysql数据并显示在前端

    一.首先按添加网页的步骤添加网页,我的网页名为table.html, app名为web table.html放到相应目录下, froms文件提前写好 修改views.py ? 1 2 3 4 5 6 ...

  9. URL中的空格

    如果URL中带空格,在浏览器中可以显示,但是如果访问比如 UIImage 获取图片的时候就会出现BAD URL. 解决: NSString* urlText = @"70.84.58.40/ ...

  10. Jenkins Docker安装及Docker build step插件部署配置

    生产部署环境:A:192.168.1.2 B:192.168.1.3  两台服务器系统均是Centos 7.3 , Docker版本都1.12.6 Jenkins安装操作步骤: 1.在A服务器上使用命 ...