Android UDP协议通信简单尝试
2017-09-10 21:32
363 查看
Android UDP协议通信
ZHR
UDP:UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议。与TCP相比没有是否发送成功的判断机制,相比起来不安全但是速度更快,发送方式更简单,比TCP更合适只发送或者只接收信息的机制。
=8102;
//本地端口
private int romotePort=
8102; //远程端口
InetAddress address=
null; //远程IP
注意:由于在使用Android UDP通信中发现将UDP发送程序放于线程之外会失效或闪退,于是自己封装了一个一次性的发送线程,效率不做考虑仅从完成功能的目的考虑,所以在程序中创建一个全局变量字符串,通过每次发送之前修改字符串内容,而改变发送的内容。由于UDP的发送只需要远程端的IP地址与端口于是不需要进行连接,只需要使用合适的发送语句即可。
注意由于线程是一次性的,所以不用手动去销毁。同时需注意addresss是通过将edittext中的IP转换成InetAddress格式使用。
ZHR
UDP:UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议。与TCP相比没有是否发送成功的判断机制,相比起来不安全但是速度更快,发送方式更简单,比TCP更合适只发送或者只接收信息的机制。
目标:实现手机与PC通过PC连接手机的热点形成的局域网通信,手机只发送信息,PC只接收数据
实现:主要使用两个类,DatagramSocket与DatagramPacket.
第一步:在AndroidManifest.xml文件中添加入网许可
<uses-permissionandroid:name="android.permission.INTERNET"></uses-permission>第二步:在Macitvity.java中新建几个变量
private intlocalPort=8102;
//本地端口
private int romotePort=
8102; //远程端口
InetAddress address=
null; //远程IP
第三步:新建UDP通信的套接字与数据包
DatagramSocket socket_UDP = null; //UDP协议Socket DatagramPacket DP = null; //UDP协议数据包
第四步:新建一个用于存命令的字符串
public static String string = null; //指令
注意:由于在使用Android UDP通信中发现将UDP发送程序放于线程之外会失效或闪退,于是自己封装了一个一次性的发送线程,效率不做考虑仅从完成功能的目的考虑,所以在程序中创建一个全局变量字符串,通过每次发送之前修改字符串内容,而改变发送的内容。由于UDP的发送只需要远程端的IP地址与端口于是不需要进行连接,只需要使用合适的发送语句即可。
第五步:封装UDP的发送数据方法
//UDP数据发送 public void senCmd(String str){ string = str; Thread t = new UDPSendThread(); t.start(); } //发送数据线程 public class UDPSendThread extends Thread{ @Override public void run() { sendData_UDP(string); } } //UDP发送数据基层代码 public void sendData_UDP(String str){ try{ socket_UDP = new DatagramSocket(localPort); //新建UDP类型Socket绑定本地端口 byte[] byteDate = str.getBytes(); DP = new DatagramPacket(byteDate, byteDate.length, address 4000 , romotePort); //将数据装包发送给远程IP与端口 socket_UDP.send(DP); //发送数据包 socket_UDP.close(); }catch (Exception e){ e.printStackTrace(); } }
注意由于线程是一次性的,所以不用手动去销毁。同时需注意addresss是通过将edittext中的IP转换成InetAddress格式使用。
注意:以上是成功后的程序,单独将UDP部分程序拿出,PC连接手机热点
转载请注明出处相关文章推荐
- java/android udp协议通信
- 常见通信协议HTTP、TCP、UDP的简单介绍
- Android UDP通信的简单实例和用法归纳,以及与TCP对比、常见问题
- java socket UDP协议收发数据简单实现通信示例
- UDP协议通信简单代码分析
- Android网络编程之UDP通信----简单客户端与服务端通信
- 一个简单的Java UDP协议通信的例子
- android手机与服务器基于UDP协议的通信
- vs2015基于UDP协议的简单通信例程
- Android Socket UDP通信的简单演示
- Python实现udp协议的简单服务器和客户端通信
- 【网络】常见通信协议HTTP、TCP、UDP的简单介绍
- 基于Tcp&UDP协议的简单Socket通信实例(JAVA)
- 一个简单的Java UDP协议通信的例子
- Java Socket编程之UDP协议简单介绍
- 网络通信协议-UDP
- Linux下C语言实现简单的udp通信
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
- 稳扎稳打Silverlight(54) - 4.0通信之对UDP协议的支持: 通过 UdpAnySourceMulticastClient 实现 ASM(Any Source Multicast),即“任意源多播”
- 稳扎稳打Silverlight(54) - 4.0通信之对UDP协议的支持: 通过 UdpAnySourceMulticastClient 实现 ASM(Any Source Multicast),即“任意源多播”