Android UDP
2019独角兽企业重金招聘Python工程师标准>>>
一、UDP协议全称是用户数据报协议 ,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。
1、UDP是一个无连接协议,传输数据之前源端和终端不建立连接;
2、不维护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相同的消息;
3、UDP信息包的标题很短,8个字节,对于TCP的20个字节信息包的额外开销很小;
4、吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制;
5、不保证可靠交付;
6、UDP是面向报文的。
二、UDP的代码编程需要用到DatagramSocket类,Java使用DatagramSocket代表UDP协议的Socket,先了解一下如何使用这个类。
server服务端(接收数据方)创建步骤
1、生成DatagramSocket对象,参数为端口号
1 |
|
2、byte数组用来接收数据
1 |
|
3、DatagramPackage以包形式装载byte数组
1 |
|
4、使用DatagramPacket的receive方法接收发送方所发送的数据,是一个阻塞的方法
1 |
|
5、接收到的数据转变化成可读字符串
1 |
|
client客户端(发送数据方)创建步骤
1、生成DatagramSocket对象,参数为端口号
1 |
|
2、创建一个InetAddress对象,用于确定server客户端(数据接收方),参数为IP地址,如我的IP地址为192.168.1.103
1 |
|
3、需要发送的数据转化为byte数组
1 2 |
|
4、生成一个DatagramPacket对象,包含需要发送的byte数组,byte数组长度,已设置IP地址的serverAddress,和服务端一致的端口号(这里是8888)
1 |
|
5、发送数据,调用DatagramSocket对象的send方法
1 |
|
三、代码demo演示
server服务端,可以直接运行在eclipse即可
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
若多次运行会提示错误:Address already in use: Cannot bind,关掉之前开启的即可。
Android客户端代码demo演示,需要注意的是端口号是与服务端一致的,IP地址是服务端的IP地址。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
|
在AndroidManifest.xml添加权限和注册
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
这样即可跑起demo做测试了。先运行服务端,再点击发送4次,服务端的log如下:
参考博客:
http://www.cnblogs.com/lee0oo0/archive/2012/04/04/2431907.html
http://wang09si.blog.163.com/blog/static/170171804201303004343304/
分类: android
转载于:https://my.oschina.net/u/1177694/blog/3053458
Android UDP相关推荐
- android+udp传输大小,Android UDP数据包如何接收可变大小的数据包
我有一个Android应用程序,它监视UDP数据包并调用一个方法来处理收到的消息.我有一个问题,如果传入的消息更长,它将调用方法来处理消息.但是如果传入的消息较短,则不会调用该方法,但如果我发送短消息 ...
- android udp rtp播放器,IjkPlayer For Android(3)-RTP直播硬解码支持
IjkPlayer播放器其实是支持RTP直播的,但是只能用ffmpeg软解码不能使用硬解码. 这里将会从以下几个方面配置使用 1.UDP RTP/RTMP区别 2.FFMpeg推流 3.IjkPlay ...
- android UDP通信
源代码: MainActivity.java package com.example.udp;import java.net.DatagramPacket; import java.net.Datag ...
- android udp 模拟器,android模拟器与PC进行UDP通讯
模拟器当服务端,PC当客户端java 一.首先要进行端口映射,端口映射的方法:android 利用telnet命令服务器 telnet 127.0.0.1 5554 (链接5554模拟器)ui red ...
- android udp 广播通信,Android开启热点进行UDP通信中的坑
1.写在前面: 2018年的第一篇文章,最近在使用UDP协议进行硬件通信,大家都知道UDP协议通信必须在同一个局域网内,但是每个用户家的wifi都是不一样的,硬件设备是无法只值连接到用户家的wifi的 ...
- android udp定时发送,Android Socket基于UDP协议通信
首先我们要知道UDP通信协议是Socket通信的一种实现方式,Socket通信一般有两种通信方式:基于TCP协议.基于UDP协议.这两者的差别和优缺点就不说了,这里主要讲一下基于UDP协议的实现. 基 ...
- android udp 收发例子_网络协议之TCP和UDP
首先强调一点,TCP/IP协议是一个协议簇.里面包括很多协议的,UDP只是其中的一个, 之所以命名为TCP/IP协议,因为TCP.IP协议是两个很重要的协议,就用他两命名了. 两个协议的区别实际使用时 ...
- android udp 设备发现,两台Android设备之间进行UDP连接(使用多播地址)~~求大神指点...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 首先 发送端: package com.example.multicastclient; import android.support.v7.app.Ac ...
- Android udp json+数组 ---gt;bytes发送数据
Android json支持五种数据类型 String / int(float)/bool / null / object 今天说 object : json = new JSONObject( ...
最新文章
- 使用dokcer搭建个人博客网站
- 【GAN优化】详解SNGAN(频谱归一化GAN)
- centos7安装、卸载docker (yum方式)
- git 在 A 项目中引用 B 项目
- 486. Predict the Winner | 486. 预测赢家(博弈论)
- source insight 函数不能跳到definition_小技能: Windows10突然不能复制粘贴谁搞鬼
- linux 内核3.8,[Beaglebone] BBB迁移到linux 3.8实时内核
- 内构函数java_Android JNI参数传递
- 少年时对春有感-四季初
- 查看oracle 锁定用户名,oracle用户名被锁定
- python超时处理_Python如何实现让一个函数超时退出?
- python2和python3同时安装
- codeplex http://metrotoolkit.codeplex.com/
- (day 09 - 递归)剑指 Offer 28. 对称的二叉树
- 【8】黑塞矩阵提取图片关键点
- 【案例教程不讲废话】Cisco Packet Tracer 思科教程(精+简之快速掌握)一:组建小型局域网
- 解决windows7“您可能没有权限使用网络资源”的方法
- php智能文章相关性匹配,PHP中的Pearson相关性
- HDU 6130 Kolakoski
- Chrome 浏览器书签功能很强大