黑马程序员技术交流社区
标题:
网络编程 UDP发送端、接收端
[打印本页]
作者:
青春是你的烟火
时间:
2015-8-3 22:18
标题:
网络编程 UDP发送端、接收端
发送端:
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class UDPSend {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
System.out.println("udp 发送端 run");
/*
* 通过查阅文档,了解到用于UDP传输协议的对象是DatagramSocket。
*
* 通过udp的协议发送一段文本数据。
* 思路:
* 1,需要先建立udp的socket。它具备者发送或者接收功能。
* 2,将数据封装到数据包中。数据包对象是DatagramPacket。
* 3,使用socket对象的send方法将数据包发送出去。
* 4,关闭资源。
*/
// 1,需要先建立udp的socket。它具备者发送或者接收功能。
DatagramSocket ds = new DatagramSocket();
// 2,将数据封装到数据包中。数据包对象是DatagramPacket。
String text = "这是传送的数据啊:荆志宝";
byte[] buf = text.getBytes();//将数据转成字节数组。
// 将字节数组封装到数据包中。
DatagramPacket dp = new DatagramPacket(buf, buf.length, InetAddress.getByName("127.0.0.1"), 10000);
// 3,使用socket对象的send方法将数据包发送出去。
ds.send(dp);
// 4,关闭资源。
ds.close();
}
}
复制代码
接收端:
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class UDPRece {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
System.out.println("udp 接收端 run");
/*
* 定义一个udp的接收端。接收发送过来的数据。并显示在屏幕上。
* 思路:
* 1,先有udp socket服务。而且记住:接收端一定要明确端口。否则收不到数据。
* 2,接收数据。之前先将数据存储到数据包中。
* 3,先定义数据包。
* 4,通过数据包对象获取数据包的内容,发送端的ip。发送端的端口,发送过来的数据。
* 5,关闭资源。
*
*/
// 1,先有udpsocket服务。
DatagramSocket ds = new DatagramSocket(10000);
// 2,接收数据。之前先将数据存储到数据包中。
// 3,先定义数据包。
byte[] buf = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf, buf.length);
ds.receive(dp);//阻塞
// 4,通过数据包对象获取数据包的内容,发送端的ip。发送端的端口,发送过来的数据。
String ip = dp.getAddress().getHostAddress();
int port = dp.getPort();
String text = new String(dp.getData(),0,dp.getLength());
System.out.println(ip+":"+port+":"+text);
// 5,关闭资源。
ds.close();
}
}
复制代码
作者:
坤羽
时间:
2015-8-3 23:19
不错不错
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2