发送端:
package demo02;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.UnknownHostException;
/*
* 实现UDP协议的发送端:
* 实现封装数据的类 java.net.DatagramPacket 将你的数据包装
* 实现数据传输类 java.net.DatagramSocket 将数据包发出去
*
* 实现步骤:
* 1.创建DatagramPacket对象,封装数据,接收的地址和端口
* 2.创建DatagramSocket对象,
* 3.调用DatagramSocket类的方法send,发送数据包
* 4.关闭资源
*
* DatagramPacket构造方法:
* DatagramPacket(byte[] buf,int length,InetAddress address,int port)
*
* DatagramSocket构造方法:
* DatagramSocket()空参数
* 方法:send(DatagramPacket d)
*
*
*/
public class UDPSend {
public static void main(String[] args) throws IOException {
//创建数据包对象,封装要发送的数据,接受端IP,端口
byte[] data="你好UDP".getBytes();
//创建InetAddress对象,封装自己的IP地址
InetAddress inet=InetAddress.getByName("127.0.0.1");
DatagramPacket dp=new DatagramPacket(data,data.length,inet,6000);
//创建DatagramSocket对象,数据包的发送和接受对象
DatagramSocket ds=new DatagramSocket();
//调用ds对象的方法send,发送数据包
ds.send(dp);
ds.close();
}
}
接收端
package demo01;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
/*
* 实现UDP接收端
* 实现封装数据包java.net.DatagramPacket 将数据接收
* 实现输出传输 java.net.DatagramSocket 接受数据包
*
* 实现步骤:
* 1.创建DatagramSocket对象,绑定端口号
* 要和发送数据端口号一致
* 2.创建字节数组,接受发来的数组
* 3.创建数据包对象DatagramPacket
* 4.调用DatagramSocket对象方法 receive(DatagramPacket dp)
* 接受数据,数据放在数据包中
* 5.拆包
* 发送的IP地址
* 数据包对象DatagramPacket()方法getAddress()获取的是发送端的IP地址对象
* 接受到的字节个数
* 数据包对象DatagramPacket()方法getLength()
* 发送方的端口号
* 数据包对象DatagramPacket()方法getPort()
* 6.关闭资源
*/
public class UDPReceive {
public static void main(String[] args) throws IOException {
//创建数据包传输对象DatagramSocket 绑定端口号
DatagramSocket ds=new DatagramSocket(6000);
//创建字节数组
byte[] data=new byte[1024];
//创建数据包对象,传递字节数组
DatagramPacket dp=new DatagramPacket(data, data.length);
//调用ds对象的方法receive传递数据包
ds.receive(dp);
//获取发送端的IP地址对象
String ip=dp.getAddress().getHostAddress();
//获取发送的端口号
int port=dp.getPort();
//获取接收到的字节数
int length=dp.getLength();
System.out.println(new String(data,0,length)+"...."+ip+":"+port);
ds.close();
}
}
Udp发送端和接收端
//UdpReceive.java /* 定义udp的接收端. 思路: 1.定义udpSocket服务.一般会监听一个端口,事实上就是这个接收网络应用程序定义一个数字标示. 2.定义一个数据包.用来存 ...
c/c++ 网络编程 UDP 发送端 bind 作用
网络编程 UDP 发送端 bind 作用 upd 发送端 调用bind函数的效果:把socket特定到一个指定的端口,如果不调用bind,内核会随机分配一个端口. upd 发送端 调用bind函数的目 ...
基于C#的UDP通信(使用UdpClient实现,包含发送端和接收端)
UDP不属于面向连接的通信,在选择使用协议的时候,选择UDP必须要谨慎.在网络质量令人十分不满意的环境下,UDP协议数据包丢失会比较严重.但是由于UDP的特性:它不属于连接型协议,因而具有资源消耗小, ...
网络编程_UDP协议_发送端与接收端
创建UDP传输的发送端 : 1.建立udp的socket服务 2.将要发送的数据封装到数据包中 3.通过udp的socket服务 将数据包发送出去 4.关闭socket服务(因为调用了系统 ...
PL/SQL 调用JAVA使用UDP发送数据
步骤如下 1.直接在SQL命令中写入JAVA代码(用SYS帐号执行,不然权限等太麻烦) create or replace and resolve java source named udp as i ...
Java使用UDP发送数据到InfluxDB
最近在做压测引擎相关的开发,需要将聚合数据发送到InfluxDB保存以便实时分析和控制QPS. 下面介绍对InfluxDB的使用. 什么是InfluxDB InfluxDB是一款用Go语言编写的开源分 ...
python rabbitMQ 发送端和接收端广播模式。
消费者模型: import pika,time consumer = pika.BlockingConnection\ (pika.ConnectionParameters('localhost')) ...
java 之UDP编程
大白话:每一台电脑都有自己的ip地址,向指定的ip地址发数据,数据就发送到了指定的电脑.UDP通信只是一种通信方式而已,其特点就不多说.有了ip地址数据就能发送到指定的电脑了,但是呢!我把数据发送到电 ...
Java 简单UDP通信
Java手册 java.net Class DatagramSocket java.lang.Object java.net.DatagramSocket All Implemented Interf ...
随机推荐
Linux FHS
学习linux有必要了解FHS的知识,FHS英文全称是Filesystem Hierarchy Standard.中文翻译就是文件系统层次结构标准.关于这个详细的介绍参考官方的文档和鸟哥linux书. ...
sqlserver中表变量和变量表之间区别
sqlserver中表变量和变量表之间区别
lucene索引文件格式
转自:http://blog.csdn.net/whuqin 本文介绍下lucene生成的索引有哪些文件组成,每个文件包含了什么信息.基于Lucene 4.10.0. 数据结构 索引(index)包含 ...
forms
http://www.cnblogs.com/bomo/p/3309766.html http://www.cnblogs.com/leonwang/archive/2013/03/05/294457 ...
centos6.4 安装erlang
erlang官网: http://www.erlang.org 下载程序去年:
C# ToString格式大全
C# 货币 2.5.ToString("C"); // ¥2.50 // D 10进制数 25.ToString("D5"); // 25000 // E ...
mybatis0204 一对多查询
查询所有订单信息及订单下的订单明细信息. sql语句 主查询表:订单表 关联查询表:订单明细 SELECT orders.*, user.username, user.sex , orderdetai ...
php的冒泡算法
Hadoop MR Job 关于如何控制Map Task 数量
整理下,基本分两个方式: 一.对于大量大文件(大于block块设置的大小) 增大minSize,即增大mapred.min.split.size的值,原因:splitsize=max(minisize ...
HDOJ_就这么个烂题总是WA先放这把
#include __int64 A[100]={0}; __int64 B[100]={0}; __int64 SUM[100]={0}; int main() {in ...