java 网络编(二)UDP的传输
发送端:
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的传输的更多相关文章
- Java网络编程之UDP
Java网络编程之UDP 一.C/S架构中UDP网络通信流程 ①创建DatagramSocket与DatagramPacket对象 ②建立发送端,接收端 ③建立数据包 ④调用Socket的发送.接收方 ...
- java 25 - 4 网络编程之 UDP协议传输思路
UDP传输 两个类:DatagramSocket与DatagramPacket(具体看API) A:建立发送端,接收端. B:建立数据包. C:调用Socket的发送接收方法. D:关闭Socket. ...
- java 25 - 4 网络编程之 UDP协议传输的代码优化
UDP协议的输出端: /* UDP发送数据: A:创建Socket发送端对象 B:创建数据报包(把数据打包) C:调用Socket对象发送数据报包 D:释放资源(底层是IO流) */ public c ...
- java网络编程之UDP通讯
详细介绍了java中的网络通信机制,尤其是UDP协议,通过对UDP的基本使用进行举例说明如何使用UDP进行数据的发送接收,并举了两个小demo说明UDP的使用注意事项. UDP协议原理图解: UDP协 ...
- java 网络编程之UDP通信和简单的群聊程序
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- java网络编程之UDP实例
package Socket; import java.net.DatagramPacket; import java.net.InetAddress; public class Dgram { pu ...
- Java网络编程之TCP、UDP
Java网络编程之TCP.UDP 2014-11-25 15:23 513人阅读 评论(0) 收藏 举报 分类: java基础及多线程(28) 版权声明:本文为博主原创文章,未经博主允许不得转载. ...
- Java网络编程之InetAddress浅析
Java网络编程之InetAddress浅析 一.InetAddress综述 IP地址是IP使用的32位(IPv4)或者128位(IPv6)位无符号数字,它是传输层协议TCP,UDP的基础.InetA ...
- Java网络编程之URL和URI
Java网络编程之URL与URI 一.URL与URI简介 URI = Universal Resource Identifier 统一资源标志符 URL = Universal Resource Lo ...
- 网络编程之UDP编程
网络编程之UDP编程 UDP协议是一种不可靠的网络协议,它在通信的2端各建立一个Socket,但是这个Socket之间并没有虚拟链路,这2个Socket只是发送和接受数据的对象,Java提供了Data ...
随机推荐
- Spring Boot 使用Java代码创建Bean并注册到Spring中
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/catoop/article/details/50558333 声明同一个类下的多个实例: packa ...
- Java知多少(16)StringBuffer与StringBuider
String 的值是不可变的,每次对String的操作都会生成新的String对象,不仅效率低,而且耗费大量内存空间. StringBuffer类和String类一样,也用来表示字符串,但是Strin ...
- Java知多少(中)
Java知多少(上) )interface接口 )接口和抽象类的区别 )泛型详解 )泛型通配符和类型参数的范围 )异常处理基础 )异常类型 )未被捕获的异常 )try和catch的使用 )多重catc ...
- 牛客网_Go语言相关练习_选择题(3)
题目来源于牛客网 一.选择题 Go语言自带垃圾回收机制. 如果是值传递的话子函数对map修改不会影响父函数中的map,如果是地址传递则会影响. go语言编译器会自动在以标识符.数字字面量.字母字面量. ...
- oracle表空间不足扩容的方法
1.查询当前用户的所属表空间 select * from user_users; 2.增加表空间有两种方法: 以sysdba登陆进数据库 语法: alter tablespace 表空间名称 add ...
- [Artoolkit] ARToolKit's SDK Structure on Android
Most applications on Android are developed in Java, and Android provides a rich framework of classes ...
- SpringBoot------个性化启动Banner设置
1.添加Banner.txt文件 . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ ...
- Spring Boot 集成 Redis 实现缓存机制
本文章牵涉到的技术点比较多:spring Data JPA.Redis.Spring MVC,Spirng Cache,所以在看这篇文章的时候,需要对以上这些技术点有一定的了解或者也可以先看看这篇文章 ...
- mysql的安装和配置
1.mydql的安装 重装wind7系统之后,mysql软件自动卸载了.现在学习需要使用mysql,还是要安装mysql.我首先通过下载安装包的方式安装,按照教程,但是出现缺失.dll文件,我下载安装 ...
- Intelij的idea和pycharm的使用
idea是一个很复杂但是要页很好使用的工具,其集成了很多功能,也觉定了其很多的快捷键,要在使用得过程中总结其好处. 1.psvm:public static void main(){ } 2 ...