UDP网络程序
2017-02-20 12:21
85 查看
要实现UDP通信需要创建一个发送端程序和一个接收端程序,很明显,在通信时只有接收端程序先运行,才能避免因发送端发送的数据无法接收,而造成数据丢失。因此,首先需要来完成接收端程序的编写。
1.
UDP完成数据的发送
/*
* 发送端
* 1,创建DatagramSocket对象
* 2,创建DatagramPacket对象,并封装数据
* 3,发送数据
* 4,释放流资源
*/
publicclass UDPSend
{
publicstaticvoid
main(String[] args) throwsIOException {
//1,创建DatagramSocket对象
DatagramSocketsendSocket =new
DatagramSocket();
//2,创建DatagramPacket对象,并封装数据
//publicDatagramPacket(byte[]
buf,int length, InetAddress address, int
port)
//构造数据报包,用来将长度为 length的包发送到指定主机上的指定端口号。
byte[] buffer ="hello,UDP".getBytes();
DatagramPacket dp =new
DatagramPacket(buffer, buffer.length,InetAddress.getByName("192.168.75.58"),
12306);
//3,发送数据
//publicvoid send(DatagramPacket p)
从此套接字发送数据报包
sendSocket.send(dp);
//4,释放流资源
sendSocket.close();
}
}
2.UDP完成数据的接收
/*
* UDP接收端
*
* 1,创建DatagramSocket对象
* 2,创建DatagramPacket对象
* 3,接收数据存储到DatagramPacket对象中
* 4,获取DatagramPacket对象的内容
* 5,释放流资源
*/
publicclass UDPReceive
{
publicstaticvoid
main(String[] args)throws
IOException {
//1,创建DatagramSocket对象,并指定端口号
DatagramSocketreceiveSocket
=new DatagramSocket(12306);
//2,创建DatagramPacket对象,创建一个空的仓库
byte[]buffer
=newbyte[1024];
DatagramPacketdp=new
DatagramPacket(buffer,1024);
//3,接收数据存储到DatagramPacket对象中
receiveSocket.receive(dp);
//4,获取DatagramPacket对象的内容
//谁发来的数据 getAddress()
InetAddressipAddress =dp.getAddress();
Stringip=ipAddress.getHostAddress();//获取到了IP地址
//发来了什么数据 getData()
byte[]data
=dp.getData();
//发来了多少数据 getLenth()
intlength
= dp.getLength();
//显示收到的数据
StringdataStr =new
String(data,0,length);
System.out.println("IP地址:"+ip+"数据是"+dataStr);
//5,释放流资源
receiveSocket.close();
}
}
1.
UDP完成数据的发送
/*
* 发送端
* 1,创建DatagramSocket对象
* 2,创建DatagramPacket对象,并封装数据
* 3,发送数据
* 4,释放流资源
*/
publicclass UDPSend
{
publicstaticvoid
main(String[] args) throwsIOException {
//1,创建DatagramSocket对象
DatagramSocketsendSocket =new
DatagramSocket();
//2,创建DatagramPacket对象,并封装数据
//publicDatagramPacket(byte[]
buf,int length, InetAddress address, int
port)
//构造数据报包,用来将长度为 length的包发送到指定主机上的指定端口号。
byte[] buffer ="hello,UDP".getBytes();
DatagramPacket dp =new
DatagramPacket(buffer, buffer.length,InetAddress.getByName("192.168.75.58"),
12306);
//3,发送数据
//publicvoid send(DatagramPacket p)
从此套接字发送数据报包
sendSocket.send(dp);
//4,释放流资源
sendSocket.close();
}
}
2.UDP完成数据的接收
/*
* UDP接收端
*
* 1,创建DatagramSocket对象
* 2,创建DatagramPacket对象
* 3,接收数据存储到DatagramPacket对象中
* 4,获取DatagramPacket对象的内容
* 5,释放流资源
*/
publicclass UDPReceive
{
publicstaticvoid
main(String[] args)throws
IOException {
//1,创建DatagramSocket对象,并指定端口号
DatagramSocketreceiveSocket
=new DatagramSocket(12306);
//2,创建DatagramPacket对象,创建一个空的仓库
byte[]buffer
=newbyte[1024];
DatagramPacketdp=new
DatagramPacket(buffer,1024);
//3,接收数据存储到DatagramPacket对象中
receiveSocket.receive(dp);
//4,获取DatagramPacket对象的内容
//谁发来的数据 getAddress()
InetAddressipAddress =dp.getAddress();
Stringip=ipAddress.getHostAddress();//获取到了IP地址
//发来了什么数据 getData()
byte[]data
=dp.getData();
//发来了多少数据 getLenth()
intlength
= dp.getLength();
//显示收到的数据
StringdataStr =new
String(data,0,length);
System.out.println("IP地址:"+ip+"数据是"+dataStr);
//5,释放流资源
receiveSocket.close();
}
}
相关文章推荐
- 用java编写简单UDP网络通信程序
- 用java编写简单UDP网络通信程序
- 一个基于UDP数据广播的局域网络会议程序
- 黑马程序员-用UDP编写网络聊天程序
- 黑马程序员-UDP网络程序
- 一个基于UDP数据广播的局域网络会议程序
- 基于UDP协议的网络程序
- Java 网络 UDP 一个局域网下的聊天小程序
- Delphi-网络编程-第一个网络方面作品(UDP聊天程序)
- [QT]QT教程之实例分析[九] 网络广播程序(QUdpSocket)
- C# UDP 网络聊天程序
- 网络程序之UDP通讯
- 配置PPC模拟器网络环境,调试TCP/UDP套接字程序
- 用java编写简单UDP网络通信程序
- [QT]QT教程之实例分析[九] 网络广播程序(QUdpSocket)
- 在C++ Builder中用socket api来写网络通讯程序(同时支持TCP和UDP协议)
- 在C++ Builder中用socket api来写网络通讯程序(同时支持TCP和UDP协议)
- socket UDP网络程序编写
- 网络编程之UDP网络程序
- C# UDP 网络聊天程序