下面介绍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基础级的示例的更多相关文章

  1. Java网络编程二:Socket详解

    Socket又称套接字,是连接运行在网络上两个程序间的双向通讯的端点. 一.使用Socket进行网络通信的过程 服务端:服务器程序将一个套接字绑定到一个特定的端口,并通过此套接字等待和监听客户端的连接 ...

  2. java 网络编程-tcp/udp

    --转自:http://blog.csdn.net/nyzhl/article/details/1705039 直接把代码写在这里,解释看这里吧:http://blog.csdn.net/nyzhl/ ...

  3. Java网络编程二--基于UDP的编程

    DatagramSocket对象为基于UDP协议的Socket 构造器提供可以选择性绑定到指定端口和ip 创建完对象后调用:receive(DatagramPacket p) send(Dategra ...

  4. Java并发编程 (二) 并发基础

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.CPU多级缓存-缓存一致性 1.CPU多级缓存 ​ 上图展示的是CPU高级缓存的配置,数据的读取和存 ...

  5. Java 网络编程(二)

    以下例开始本文的内容: 例1,需求:上传图片. 客户端: 服务端点. 读取客户端已有的图片数据. 通过socket输出流将数据发给服务端. 读取服务端反馈信息. 关闭. class PicClient ...

  6. java网络编程(4)——udp实现聊天

    UDP可以实现在线聊天功能,我这里就是简单模拟一下: 发送端: package com.seven.udp; import java.io.BufferedReader; import java.io ...

  7. Java网络编程——TCP/UDP

    UDP:面向无连接 ☆ 将数据及源地址和目的地址封装成数据包中 ☆ 每个数据报的大小限制在64K ☆ 不可靠协议 ☆ 不需要建立连接,速度快 TCP:面向有连接 ☆ 建立连接,形成传输数据的通道 ☆ ...

  8. Java网络编程二

    向web站点发送get post请求,并从web站点取得响应 通相应的set方法,在调用connect()方法前,可以设置请求的各种参数,实现同浏览器类似的访问,调用connect()后可以调用相应的 ...

  9. Java 网络编程 --基于UDP实现一对一聊天功能

    UDP 基本流程: UDP发送端基本流程: 1.使用DatagramSocket 指定端口 创建发送端 2.准备数据 一定转成字节数组 3. 封装成DatagramPacket 包裹,需要指定目的地 ...

随机推荐

  1. Cocos2d-JS替换初始化场景

    Cocos2d-js工程默认启动入口为app.js,准备修改为另外一个入口文件如:GameScene.js var GameLayer = cc.Layer.extend({ ctor:functio ...

  2. mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication解决办法

    mysqlnd是个好东西.不仅可以提高与mysql数据库通信的效率,而且也可以方便的设置一些超时.如,连接超时,查询超时.但是,使用mysqlnd的时候,有个地方需要注意.就是服务端的密码格式不能使用 ...

  3. ASP.NET关于Login控件使用 (转)

    分类: C# 2011-02-21 10:38 4599人阅读 评论(0) 收藏 举报 loginasp.netstringurlserverbutton 今天上网找了一些关于Login控件的使用资料 ...

  4. angularJs之模块化

    <!DOCTYPE HTML><html ng-app="myApp"><head><meta http-equiv="Cont ...

  5. 我的工具箱之Securecrt6.5.0

    Securecrt是一款支持SSH的终端仿真软件,一般用于连接Linux/Unix系统.感觉这个比Putty强些. 下载地址是:http://pan.baidu.com/s/1gednNhh

  6. Linux系统中缺少GUI设备引起的HeadlessException

    缺少X11显示设置 Exception in thread "AWT-EventQueue-0" java.awt.HeadlessException: No X11 DISPLA ...

  7. mysql怎么定义外键

    数据库mysql 建立外键的前提: 本表的列必须与外键类型相同(外键必须是外表主键). 外键作用: 使两张表形成关联,外键只能引用外表中的列的值! 指定主键关键字: foreign key(列名) 引 ...

  8. HTTP深入浅出 http请求

    HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则.计算机专家设计出HTTP,使HTTP客户(如Web浏览器)能够从HTTP服务器(Web服务器)请求 ...

  9. web双机热备添加心跳检测ip的时候填了网关导致外网ip不能上网

    web双机热备添加心跳检测ip的时候填了网关导致外网ip不能上网 1 连接 机器其他机器, 通过机房做的服务器的局域网,ssh到这台的局域网ip,删除网卡配置文件的网关哪一行,重启网卡. 2 如果没有 ...

  10. sql拼接字符串和转换类型

    select top 10 a.ID as a_ID,a.Name as a_Name,c.* from (select * from DC_Trees where Pid=187 or ID=187 ...