android 发送UDP广播,搜寻server建立socket链接
应用场景:client(手机。pc)须要搜寻所在局域网内的server并获得server地址。
方法简单介绍:client发送UDP广播,服务收到广播后得到clientip地址,然后向client发送一次socket链接,client收到socket链接。获得server地址。
相关知识:
UPD、TCP。
TCP是面向链接的。可靠的通信方式。
UDP是面向非链接的通讯方式。TCP的建立比較麻烦,要经过“三次握手”。而UDP的建立比較简单。发送方仅仅管把内容发送出去,无论接收方是否收到。UDP的传输分为:单播,多播,广播。当中。多播和广播是通过TCP/IP协议里面特定的IP地址实现的,比如受限广播的地址为:255.255.255.255 。
网络port一共同拥有65535个,主机之间的通讯须要制定port。
网络port分为三类。公认port,注冊port和动态和/或私有port。
实验方式:
四个应用程序。当中两个android程序,两个PC程序。让PC和android轮流,或者一起当做client和服务端。
測试结果是:PC端的UDP监听和UDP发起程序能够同一时候执行。可是android手机上,一旦UDP服务在监听port,本机就不能再发送该port的UDP广播。
代码下载:http://download.csdn.net/detail/qiushibaiyi/7531837
网络port资料入口:http://baike.baidu.com/view/43200.htm?fr=aladdin 点击打开链接
多播和广播资料入口 : http://www.cnblogs.com/hnrainll/archive/2011/09/01/2162110.html 点击打开链接
部分代码參考:http://download.csdn.net/download/xiaoxiaobian3310903/4502201# 点击打开链接
參考文章: http://blog.sina.com.cn/s/blog_6c0a8fbb0100s3k5.html 点击打开链接
代码地址:http://download.csdn.net/detail/qiushibaiyi/7531837点击打开链接
android 发送UDP广播,搜寻server建立socket链接的更多相关文章
- [Python] socket发送UDP广播实现聊天室功能
一.说明 本文主要使用socket.socket发送UDP广播来实现聊天室功能. 重点难点:理解UDP通讯流程.多线程.UDP广播收发等. 测试环境:Win10\Python3.5. 程序基本流程:创 ...
- NetworkComms V3 之发送UDP广播消息
NetworkComms网络通信框架序言 NetworkComms通信框架,是一款来自英国的c#语言编写的通信框架,历时6年研发,成熟稳定,性能可靠. NetworkComms v3目前只支持基本的U ...
- android 发送自定义广播以及接收自定义广播
发送自定义广播程序: 布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout x ...
- Android 发送自定义广播(标准和本地)
1.首先自定义一个广播接收器:MyBroadcastReceiver package example.com.mybroadcastreceiver; import android.content.B ...
- android: 发送自定义广播
5.3.1 发送标准广播 在发送广播之前,我们还是需要先定义一个广播接收器来准备接收此广播才行,不然发 出去也是白发.因此新建一个 MyBroadcastReceiver 继承自 Broadca ...
- android发送udp,tcp消息
发送方创建步骤: 1. 创建一个DatagramSocket对象 DatagramSocket socket = new DatagramSocket (4567); 2. 创建一个 InetA ...
- java发送udp广播包
2013-06-07 22:44 1272人阅读 评论(2) 收藏 举报 import java.io.IOException; import java.net.DatagramPacket; imp ...
- android 手机UDP 接受不到数据
一.有的手机不能直接接收UDP包,可能是手机厂商在定制Rom的时候把这个功能给关掉了. 1.可先在oncreate()方法里面实例化一个WifiManager.MulticastLock 对象lock ...
- 利用Docker技术实现UDP广播效果(网络编程python版)
docker的安装见官方文档 我使用的系统为Ubuntu16.04 Ubuntu系统安装docker文档地址:https://docs.docker.com/engine/installation/l ...
随机推荐
- mysql5.7执行sql语句出现only_full_group_by错误
在/etc/my.cnf的[mysqld]组中添加 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISI ...
- Queue CodeForces - 353D (思维dp)
https://codeforces.com/problemset/problem/353/D 大意:给定字符串, 每一秒, 若F在M的右侧, 则交换M与F, 求多少秒后F全在M左侧 $dp[i]$为 ...
- homestead 添加新站点
homestead 添加站点的时候遇到了坑,这里记录下来,也顺便给大家一个参考. 1. 首先修改homestead.yaml文件(虽然你有可能不知道这个文件在哪,但是我也不会帮你找的.) 2. 接着修 ...
- 这里面盲点很多,构造函数的调用问题,还有vptr指针的++问题(已解决)
#include<iostream> //实现vptr指针初始化问题 using namespace std; class Father { public: Father (int f) ...
- JSP内置对象和属性
JSP内置对象和属性列举如下: 1.request对象 客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应.它是HttpServletRequest类的 ...
- forget word out a~4
1● ana 错误,分开 2● ante 先,前面 3● anti 反对,相反 1◆ ana 2◆ ante 3◆ anti 1● dem(o) 2● pupl 3● ...
- 快速切题 poj2488 A Knight's Journey
A Knight's Journey Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 31195 Accepted: 10 ...
- c#多线程介绍1
一 什么是多线程 1. 什么是进程?一个 exe 运行一次就会产生一个进程,一个 exe 的多个进程之 间数据互相隔离. 2. 一个进程里至少有一个线程:主线程.我们平时写的控制台程序默认就是单线程的 ...
- Python & PyCharm & Django 搭建web开发环境(续)
由于Django自带轻量级的server,因此在前篇博文中,默认使用该server,但实际生产中是不允许这么干的,生产环境中通常使用Apache Httpd Server结合mod_wsgi.so来做 ...
- SpringMVC(二)传值
1.HelloController.java 通过model.addAttribute(key,value)进行传值 package zttc.itat.controller; import org. ...