java网络编程(3)——UDP
UDP在java中主要使用DatagramSocket来实现通讯,数据一般是通过DatagramPacket来封装;
发送方只需指定接受方的地址和端口,然后通过send()方法就可以把封装在DatagramPacket中数据发送过去!
而接收方只需同样利用DatagramSocket和一个DatagramPacket来接收数据就可以了,接受只需指定接受端口就可以了,具体如下:
发送方:
package com.seven.exercise1; import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress; public class UdpSend { public static void main(String[] args) throws Exception { //1.udp服务
DatagramSocket ds = new DatagramSocket(); //2.封装数据到DatagramPacket
byte[] data = "hello udp socket".getBytes(); InetAddress inetAddress = InetAddress.getByName("127.0.0.1");//地址.
DatagramPacket datagramPacket = new DatagramPacket(data, data.length, inetAddress, 10000); //3.发送数据
ds.send(datagramPacket); //4.关闭
ds.close(); }
}
接受方;
package com.seven.exercise1; import java.net.DatagramPacket;
import java.net.DatagramSocket; public class UdpReceive { public static void main(String[] args) throws Exception{
//1.新建接收方
DatagramSocket datagramSocket = new DatagramSocket(10000);
//2.绑定接收package
byte[] b = new byte[1024];
DatagramPacket dp = new DatagramPacket(b,b.length);
//3.接收数据
datagramSocket.receive(dp);
//4.接收到数据的话那就打印出来
String data = new String(dp.getData(),0,dp.getLength());
System.out.println(dp.getAddress().getHostAddress() +"----->"+ data);
//5.关闭;
datagramSocket.close(); } }
因为UDP是面向无连接的,所以无论怎么运行都可以,但是为了能够接受到数据,我们要把接受方先运行起来,再去运行发送方,这样才可以看出效果,不然的话数据包丢失也就看不出什么效果了==。
java网络编程(3)——UDP的更多相关文章
- java 网络编程-tcp/udp
--转自:http://blog.csdn.net/nyzhl/article/details/1705039 直接把代码写在这里,解释看这里吧:http://blog.csdn.net/nyzhl/ ...
- java 网络编程基础 UDP协议的Socket:DatagramSocket;广播Socket:MulticastSocket
什么是UDP协议: UDP协议是一种不可靠的网络协议,它在通信实例的两端各建立一个Socket 但这两个 Socket之间并没有虚拟链路,这两个Socket只是发送.接收数据报的对象.Java 提供了 ...
- java网络编程(4)——udp实现聊天
UDP可以实现在线聊天功能,我这里就是简单模拟一下: 发送端: package com.seven.udp; import java.io.BufferedReader; import java.io ...
- java 网络编程基础 UDP协议DatagramSocket,MulticastSocket 实现局域网聊天软件(Server + Client模式)
开发思路: 服务端两个Socket: UDP的DatagramSocket接收客户端消息. 广播multicastSocket 发送广播消息 客户端一个Socket: multicastSocke ...
- Java网络编程——TCP/UDP
UDP:面向无连接 ☆ 将数据及源地址和目的地址封装成数据包中 ☆ 每个数据报的大小限制在64K ☆ 不可靠协议 ☆ 不需要建立连接,速度快 TCP:面向有连接 ☆ 建立连接,形成传输数据的通道 ☆ ...
- Java 网络编程 --基于UDP实现一对一聊天功能
UDP 基本流程: UDP发送端基本流程: 1.使用DatagramSocket 指定端口 创建发送端 2.准备数据 一定转成字节数组 3. 封装成DatagramPacket 包裹,需要指定目的地 ...
- java:网络编程(UDP (DatagramSocket和DatagramPacket)正则表达式)
java:网络编程(UDP (DatagramSocket和DatagramPacket)正则表达式) * TCP* 特点:面向连接,点对点的通信,效率较低,但安全可靠* UDP:用户数据报协议,类似 ...
- Java网络编程UDP通信原理
前言 继续今天我们的Java网络编程--TCP和UDP通信 一.TCP和UDP概述 传输层通常以TCP和UDP协议来控制端点与端点的通信 TCP UDP 协议名称 传输控制协议 用户数据包协议 是 ...
- Java 网络编程学习总结
新手一枚,Java学习中,把自己学习网络编程的知识总结一下,梳理下知识,方便日后查阅,高手莫进. 本文的主要内容: [1] 网络编程认识 [2] TCP/IP编程 ...
- java 网络编程复习(转)
好久没有看过Java网络编程了,现在刚好公司有机会接触,顺便的拾起以前的东西 参照原博客:http://www.cnblogs.com/linzheng/archive/2011/01/23/1942 ...
随机推荐
- JavaScript Hoisting
Hoisting is JavaScript's default behavior of moving all declarations to the top of the current scope ...
- 自己写的日志框架--linkinLog4j--日志框架的必要性
OK,在开始研究Log4j的源码之前,我们先来自己模拟一个日志工具,名字就叫linkinlog4j好了. 在软件开发过程中,出现bug总是在所难免:事实上,以我个人经验,即使在实际开发阶段,fix b ...
- Servlet--ServletException类,UnavailableException类
ServletException类 定义 public class ServletException extends Exception 当 Servlet 遇到问题时抛出的一个异常. 构造函数 pu ...
- js 判断一个文本框是否获得焦点
1.js 判断一个文本框是否获得焦点 // 可以用document.activeElement判断 // document.activeElement表示当前活动的元素 // 查找你要判断的文本框 ...
- ssh免秘钥登录
简介 SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定:SSH 为建立在应用层基础上的安全协议.SSH 是目前较可靠,专为远程 ...
- Java细节
native关键字用法 native是与C++联合开发的时候用的!java自己开发不用的! 使用native关键字说明这个方法是原生函数,也就是这个方法是用C/C++语言实现的,并且被编译成了DLL, ...
- ABP官方文档翻译 5.2 动态We API层
动态Web APID层 创建动态Web API控制器 ForAll方法 重写ForAll ForMethods Http动词 WithVerb方法 HTTP特性 命名约定 API管理器 RemoteS ...
- RMI基础
远程方法调用(Remote Method Invocation,RMI)从JDK1.1就已经实现,它大大增强了Java开发分布式应用的能力.可以实现通过网络完成不同JVM间的通信,不仅可以传递基本的数 ...
- BZOJ 2707: [SDOI2012]走迷宫 [高斯消元 scc缩点]
2707: [SDOI2012]走迷宫 题意:求s走到t期望步数,\(n \le 10^4\),保证\(|SCC| \le 100\) 求scc缩点,每个scc高斯消元,scc之间直接DP 注意每次清 ...
- HDU2089 不要62 BZOJ1026: [SCOI2009]windy数 [数位DP]
基础题复习 这次用了dfs写法,感觉比较好 #include <iostream> #include <cstdio> #include <cstring> #in ...