黑马程序员技术交流社区
标题:
UDP 接收
[打印本页]
作者:
fmi110
时间:
2015-9-17 17:46
标题:
UDP 接收
package net.program;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class UdpSendDemo {
/**
* 192.168.11.248
255.255.255.0
192.168.11.1
* UDP数据报协议发送数据流程:
* 1 创建发送端的Socket对象,DatagramSocket
* 2 创建数据,并将数据封包,底层为IO数据流
* 3 调用DatagramSocket对象的发送方法,将数据发送
* 4 释放资源
* @throws IOException
*/
public static void main(String[] args) throws IOException {
//DatagramSocket()
// 构造数据报套接字并将其绑定到本地主机上任何可用的端口。
DatagramSocket ds = new DatagramSocket();
//创建数据
byte[] bys = "This is UDP demo".getBytes();
int length = bys.length;
//数据封装DatagramPacket
//DatagramPacket(byte[] buf, int length, InetAddress address, int port)
InetAddress address = InetAddress.getByName("192.168.11.248");
// System.out.println(address.getHostAddress()+"..."+address.getHostName());
DatagramPacket dp = new DatagramPacket(bys, length, address,10086);
ds.send(dp);
//释放资源
ds.close();
}
}
复制代码
作者:
fmi110
时间:
2015-9-17 17:48
package net.program;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class UdpReceiveDemo {
/**
* UDP接收程序:
* 1 创建UDP套接字对象,DatagramSocket,并指定接收端口
* 2 创建接收数据包DatagramPacket
* 3 调用DatagramSocket的接收方法,接收数据,放入DatagramPacket
* 4 解析数据包并输出到控制台
* 5 释放资源
* @throws IOException
*/
public static void main(String[] args) throws IOException {
//创建套接字
DatagramSocket ds = new DatagramSocket(10086);
//创建接收容器,数据报包
byte[] buf = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf, 1024);
//接收数据报包
ds.receive(dp);//该方法在接收到数据报之前一直阻塞
//获取ip地址
InetAddress address = dp.getAddress();
System.out.println(address.getHostName()+"..."+address.getHostAddress()+" 发来消息:");
//解析数据包内容,数据+长度
byte[] datas = dp.getData();
int length = dp.getLength();
String message = new String(datas,0,length);
System.out.println(message);
//释放资源
ds.close();
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2