应用场景: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链接的更多相关文章

  1. [Python] socket发送UDP广播实现聊天室功能

    一.说明 本文主要使用socket.socket发送UDP广播来实现聊天室功能. 重点难点:理解UDP通讯流程.多线程.UDP广播收发等. 测试环境:Win10\Python3.5. 程序基本流程:创 ...

  2. NetworkComms V3 之发送UDP广播消息

    NetworkComms网络通信框架序言 NetworkComms通信框架,是一款来自英国的c#语言编写的通信框架,历时6年研发,成熟稳定,性能可靠. NetworkComms v3目前只支持基本的U ...

  3. android 发送自定义广播以及接收自定义广播

    发送自定义广播程序: 布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout x ...

  4. Android 发送自定义广播(标准和本地)

    1.首先自定义一个广播接收器:MyBroadcastReceiver package example.com.mybroadcastreceiver; import android.content.B ...

  5. android: 发送自定义广播

    5.3.1    发送标准广播 在发送广播之前,我们还是需要先定义一个广播接收器来准备接收此广播才行,不然发 出去也是白发.因此新建一个 MyBroadcastReceiver 继承自 Broadca ...

  6. android发送udp,tcp消息

    发送方创建步骤: 1.  创建一个DatagramSocket对象 DatagramSocket socket = new  DatagramSocket (4567); 2.  创建一个 InetA ...

  7. java发送udp广播包

    2013-06-07 22:44 1272人阅读 评论(2) 收藏 举报 import java.io.IOException; import java.net.DatagramPacket; imp ...

  8. android 手机UDP 接受不到数据

    一.有的手机不能直接接收UDP包,可能是手机厂商在定制Rom的时候把这个功能给关掉了. 1.可先在oncreate()方法里面实例化一个WifiManager.MulticastLock 对象lock ...

  9. 利用Docker技术实现UDP广播效果(网络编程python版)

    docker的安装见官方文档 我使用的系统为Ubuntu16.04 Ubuntu系统安装docker文档地址:https://docs.docker.com/engine/installation/l ...

随机推荐

  1. 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 ...

  2. Queue CodeForces - 353D (思维dp)

    https://codeforces.com/problemset/problem/353/D 大意:给定字符串, 每一秒, 若F在M的右侧, 则交换M与F, 求多少秒后F全在M左侧 $dp[i]$为 ...

  3. homestead 添加新站点

    homestead 添加站点的时候遇到了坑,这里记录下来,也顺便给大家一个参考. 1. 首先修改homestead.yaml文件(虽然你有可能不知道这个文件在哪,但是我也不会帮你找的.) 2. 接着修 ...

  4. 这里面盲点很多,构造函数的调用问题,还有vptr指针的++问题(已解决)

    #include<iostream> //实现vptr指针初始化问题 using namespace std; class Father { public: Father (int f) ...

  5. JSP内置对象和属性

      JSP内置对象和属性列举如下: 1.request对象     客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应.它是HttpServletRequest类的 ...

  6. forget word out a~4

    1● ana 错误,分开   2● ante   先,前面   3● anti 反对,相反       1◆ ana 2◆ ante 3◆ anti     1● dem(o) 2● pupl 3● ...

  7. 快速切题 poj2488 A Knight's Journey

    A Knight's Journey Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 31195   Accepted: 10 ...

  8. c#多线程介绍1

    一 什么是多线程 1. 什么是进程?一个 exe 运行一次就会产生一个进程,一个 exe 的多个进程之 间数据互相隔离. 2. 一个进程里至少有一个线程:主线程.我们平时写的控制台程序默认就是单线程的 ...

  9. Python & PyCharm & Django 搭建web开发环境(续)

    由于Django自带轻量级的server,因此在前篇博文中,默认使用该server,但实际生产中是不允许这么干的,生产环境中通常使用Apache Httpd Server结合mod_wsgi.so来做 ...

  10. SpringMVC(二)传值

    1.HelloController.java 通过model.addAttribute(key,value)进行传值 package zttc.itat.controller; import org. ...