• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > udp connect 总结

udp connect 总结

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了udp connect,udp协议总结,udp端口测试工具,udp,udp flood攻击等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

udp connect 总结


最近在写健康检查的插件,udp的检查打算用connect 来做,总结一下udp 判断对端服务器是否在监听对应端口的方法:

单纯判断connect 的返回值无法判断对端服务器是否在监听,因为connect 只是让内核永久维护一个存储对端地址信息的数据结构
并不会像tcp 一样去与对端服务器发生通讯,tcpdump 抓包是没有任何数据包的

connect + send 也无法判断对端服务器是否在监听端口,tcpdump 抓包能抓到icmp unreachable,但是应用层没有相关错误信息,send的返回值是正确的,用getsockopt获取socket的状态也是正确的

connect + send +recv 可以判断对端服务器是否在监听对应的端口,但是会存在以下问题,
阻塞模式下:对端服务器有在监听对应端口的话,recv 一直不会返回;对端服务如果没有在监听对应端口的话,recv会返回unreachable的错误,表明网络不可达
非阻塞模式下:无论对端服务器是否在监听端口,recv 会马上返回Resource temporarily unavailable ;尝试用while 一直recv ,如果对端服务器有在监听对应端口的话,无法判断退出时间;对端服务器要是没有在监听对应端口的话,可以通过错误码来判断,退出while;

最后决定用connect +send+recv 来实现,并且加个定时器,来决定recv的退出时机

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • udp connect 总结

相关文章

  • 2017-05-26手机安全卫士——手机防盗页面,安全卫士防盗页面
  • 2017-07-22Android性能优化
  • 2017-05-26如何解决Linux系统中的Navicat for MySQL 1045错误
  • 2017-05-26android布局--Android fill_parent、wrap_content和match_parent的区别,wrapparent
  • 2017-05-26在viewPager中双指缩放图片,双击缩放图片,单指拖拽图片,
  • 2017-05-26android源码解析之(二)--)异步任务AsyncTask
  • 2017-05-26Android源码解析--SwipeMenuListView仿QQ聊天左滑
  • 2017-05-26Android EventBus.getDefault()开源框架,eventbusgetdefault
  • 2017-05-26使用phonegap播放音频,phonegap播放音频
  • 2017-05-22.5.9 AlertDialog(对话框)详解

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Android移动APP开发笔记——Cordova(PhoneGap)通过CordovaPlugin插件调用 Activity 实例,phonegapcordova
    • Android-ViewPager的使用
    • Android中MotionEvent的来源和ViewRootImpl
    • 7.6.4 基于UDP协议的Socket通信
    • Java的进化? Kotlin初探与集成Android项目
    • Android新手入门2016(8)--ListView之ArrayAdapter
    • 热修复,android热修复
    • Android 日常开发总结的技术经验 60 条,android60
    • MAT使用入门,mat入门
    • WebView的基本使用,WebView使用

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有