java 网络编程(二)----UDP基础级的示例
下面介绍UDP基础级的代码示例:
首先了解创建UDP传输的发送端的思路:
1.创建UDP的Socket服务。
2.将要发送的数据封装到数据包中。
3.通过UDP的socket服务将数据包发送出去。
4.关闭socket服务。
而接收端的思想如下:
1.创建UDP的Socket服务。需要明确一个端口号。
2.创建数据包,用于存储接收到的数据,方便用数据包对象的方法解析各种数据。
3.使用socket服务的recive方法将接收到的数据存储到数据包中。
4.通过数据包中的方法解析数据包中的数据。
5.关闭资源。
具体代码如下:
//发送端
public class UDPSendDemo {
public static void main(String[] args) throws IOException {
System.out.println("发送端启动。。。。。");
//1. UDP的Socket服务,使用DatagramSocket对象,可以指定一个端口进行发送,否则服务器会默认选一个未被使用的端口
DatagramSocket da = new DatagramSocket(9999);
//2. 将要发送的数据封装到数据包中。使用DatagramPacket将发送数据封装在里面
String str="UD发送数据演示";
byte[] buf=str.getBytes();
//定义了接收方的IP地址和端口
DatagramPacket dp= new DatagramPacket(buf, buf.length,InetAddress.getByName("192.168.5.163"),10000);
//3.通过UDP的socket服务将DatagramPacket数据包发送出去,使用send方法
da.send(dp);
//4.资源使用完,关闭资源
da.close();
}
}
// 接收端
public class UDPReciveDemo {
public static void main(String[] args) throws IOException {
System.out.println("接收端启动。。。");
//1.创建UDP的Socket服务。
DatagramSocket ds = new DatagramSocket(10000);
//2.创建接收的数据包
byte[] buf=new byte[1024];
DatagramPacket dp = new DatagramPacket(buf, buf.length);
//3.使用socket服务的recive方法将接收到的数据存储到数据包中。
ds.receive(dp);
//4.通过数据对象中的方法解析数据包中的数据。比如:IP地址,端口,内容
String ipString=dp.getAddress().getHostAddress();
int port =dp.getPort();
String data= new String(dp.getData(),0,dp.getLength());
System.out.println("ip :"+ipString+"\n"+"port :"+port+"\n"+"data :"+data);
// 5.关闭资源
ds.close();
}
}
java 网络编程(二)----UDP基础级的示例的更多相关文章
- Java网络编程二:Socket详解
Socket又称套接字,是连接运行在网络上两个程序间的双向通讯的端点. 一.使用Socket进行网络通信的过程 服务端:服务器程序将一个套接字绑定到一个特定的端口,并通过此套接字等待和监听客户端的连接 ...
- java 网络编程-tcp/udp
--转自:http://blog.csdn.net/nyzhl/article/details/1705039 直接把代码写在这里,解释看这里吧:http://blog.csdn.net/nyzhl/ ...
- Java网络编程二--基于UDP的编程
DatagramSocket对象为基于UDP协议的Socket 构造器提供可以选择性绑定到指定端口和ip 创建完对象后调用:receive(DatagramPacket p) send(Dategra ...
- Java并发编程 (二) 并发基础
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.CPU多级缓存-缓存一致性 1.CPU多级缓存 上图展示的是CPU高级缓存的配置,数据的读取和存 ...
- Java 网络编程(二)
以下例开始本文的内容: 例1,需求:上传图片. 客户端: 服务端点. 读取客户端已有的图片数据. 通过socket输出流将数据发给服务端. 读取服务端反馈信息. 关闭. class PicClient ...
- java网络编程(4)——udp实现聊天
UDP可以实现在线聊天功能,我这里就是简单模拟一下: 发送端: package com.seven.udp; import java.io.BufferedReader; import java.io ...
- Java网络编程——TCP/UDP
UDP:面向无连接 ☆ 将数据及源地址和目的地址封装成数据包中 ☆ 每个数据报的大小限制在64K ☆ 不可靠协议 ☆ 不需要建立连接,速度快 TCP:面向有连接 ☆ 建立连接,形成传输数据的通道 ☆ ...
- Java网络编程二
向web站点发送get post请求,并从web站点取得响应 通相应的set方法,在调用connect()方法前,可以设置请求的各种参数,实现同浏览器类似的访问,调用connect()后可以调用相应的 ...
- Java 网络编程 --基于UDP实现一对一聊天功能
UDP 基本流程: UDP发送端基本流程: 1.使用DatagramSocket 指定端口 创建发送端 2.准备数据 一定转成字节数组 3. 封装成DatagramPacket 包裹,需要指定目的地 ...
随机推荐
- MVC从服务器端返回js到客户端的方法(总结)
1.利用ViewBag,从服务器端创建一个显示js开关的ViewBag,然后到View中去做判断. Controller端 [HttpPost] public ActionResult Index(h ...
- strlen
char c1[] = "sdfa";//系统自动添加结束字符 \0 char c2[] = {'1','2','3'};//这样赋值的话,要自己加上结束字符 \0 printf( ...
- Selenium2学习-004-WebUI自动化实战实例-002-百度登录
此文主要通过 百度登录 功能,进行 Selenium2 的实战实例讲解.文中所附源代码于 2015-01-17 23:33 亲测通过,敬请亲们阅览.同时,您也可参考此文进行其他网站(例如 京东.易迅. ...
- .Net 文件名补位
文件以name-1.pdf.name-2.pdf.name-3.pdf......name-80.pdf命名,传到数据库中排序混乱:1之后为10,2之后是20,所以要把文件名中的数字补位变成相同位数, ...
- php文件和目录操作函数
文件:打开和关闭:fopen(), fclose()读:readfile(), file(), file_get_contents(), fgets(), fgetss(), fgetc()写:fwr ...
- 2.准备Python编译环境
2.准备Python编译环境 2.1下载Python2.7.6.tgz.ipython1.2.1.tgz.sqlite-autoconf-3071401.tar.gz 2.2安装Python2.7.6 ...
- mysql -B 恢复与不加
-B 跟--database 意义一样 在默认不指定库时候 连续名称,只有第一个名称为库名,后面的都为表名 而使用 -B 或者 --database 之后 所有的名 都是库名 1 导出单个库时候加了- ...
- K线指标线计算方法
指标线计算方法 l dataDR = Kdata(原始数据)/dr(除权) //除权数据等于原始数据除以DR(除权) 其中,日K数据 需要本地进行除权处理.周K和月K的旧数据部分由服务器进行处理 ...
- 文件传输基础——Java IO流
一.文件的编码 package com.study.io; /** * 测试文件编码 */ public class EncodeDemo { /** * @param args * @throws ...
- Fluentd 例子
0. 安装.启动 安装 curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh 更新:最近貌似会安装 ...