java实现收端和发送端,java实现udp发送端和接收端

发送端:

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();

}

}

6a8278a8ff65acb729f7d49620fbe6e5.png

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 ...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值