应用场景: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. C#下实现的K-Means优化[1]-「离群点检测」

    资源下载 #本文PDF版下载 C#下实现的K-Means优化[1]-「离群点检测」 前言 在上一篇博文中,我和大家分享了「C # 下实现的多维基础K-MEANS聚类」的[C#下实现的基础K-MEANS ...

  2. php-fpm.conf配置文件中文说明详解及重要参数说明

    摘自:https://www.jb51.net/article/148550.htm 感谢分享 php-fpm工作流程 php-fpm全名是PHP FastCGI进程管理器 php-fpm启动后会先读 ...

  3. Java网络编程和NIO详解开篇:Java网络编程基础

    Java网络编程和NIO详解开篇:Java网络编程基础 计算机网络编程基础 转自:https://mp.weixin.qq.com/s/XXMz5uAFSsPdg38bth2jAA 我们是幸运的,因为 ...

  4. python-day53--前端js

    一.基本语法(ECMA) 单行注释 // /* 多行注释 */ 变量赋值 默认以换行符作为结束符,有分好以分号作为结束符号 JS的引入方式: 1. <script> </script ...

  5. 河南省第十一届ACM大学生程序设计竞赛

    nyoj-1365-山区修路 内存限制:128MB 时间限制:3000ms 特判: No通过数:4 提交数:4 难度:3 题目描述: SNJ位于HB省西部一片群峰耸立的高大山地,横亘于A江.B水之间, ...

  6. Mac下的nodeJs版本切换和升级

    在我们开发多个项目的时候,因为框架支持的node版本不同,所以要切换多个node版本 首先我们要使用npm安装一个模块 n 的全局 1.npm  install  -g  n 2.使用 n 加版本号就 ...

  7. 对va_list; va_start ; va_end ;vsprintf理解(转)

    以下为转载内容: int printf(const char* fmt, ...) { va_list args; int i; //1.将变参转化为字符串 va_start(args,fmt); v ...

  8. httpclient httpclient连接回收

    httpclient连接释放 httpClient必须releaseConnection,但不是abort.因为releaseconnection是归还连接到到连接池,而abort是直接抛弃这个连接, ...

  9. 获取URL的数据

    <!doctype html><html><head><meta charset="utf-8"><meta name=&qu ...

  10. 快速切题sgu126. Boxes

    126. Boxes time limit per test: 0.25 sec. memory limit per test: 4096 KB There are two boxes. There ...