---------------------- android培训、java培训、期待与您交流! ----------------------
这几天学习了通过Udp的传输方式连接网络中的两台主机并进行简单的数据传输。
Udp的传输对数据大小有要求超过64k就要分成块来分别传送。
1、首次必须建立一个发送端和一个 接受端 代码如下:
发送端:
通过new一个DatagramSocket 对象创建Udp服务 而这个对象里面就封装流的有关对象。
DatagramSocket ds = new DatagramSocket();
String s = "abcde"; 确定数据,封装数据包。
byte[] buf = s.getBytes();将数据储存在这个字节数组中
通过socket服务器的DatagramPacket发送数据 这里面的的IP地址和 端口就是和某个主机连接的依据 服务端和接收端的端口号要一样。
DatagramPacket dp =
new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.137.1"),10000);
ds.send(dp);
最终得关闭数据
ds.close();
接收端:
1.创建Udpsocket创建端点 这里的端口号绝对和发送端是一直的。
DatagramSocket ds = new DatagramSocket(10000);
2.定义数据包,用于储存数据。
byte[] buf = new byte[1024];
DatagramPacket dp =
new DatagramPacket(buf,buf.length);
3.通过receive方法将数据存入到数据包中。
ds.receive(dp);
4.通过数据包中的方法提取其中的数据。
String ip =(dp.getAddress().getHostAddress());
String Data = new String(dp.getData(),0,dp.getLength());
int port = dp.getPort();
System.out.println(ip+Data+port);
5.关闭服务端
ds.close();
---------------------- android培训、java培训、期待与您交流! ----------------------