YLTCPBroadcaster 2.0.1

YLTCPBroadcaster 2.0.1

测试已测试
语言语言 Obj-CObjective C
许可 MIT
发布上一个发布2019年2月

Yannick Loriot维护。



  • Yannick Loriot

YLTCPBroadcaster

License Supported Plateforms Version Build Status

YLTCPBroadcaster 是一个用 Objective-C 编写的微小库,用于在网络中查找给定 TCP 端口上打开的每个主机。它像 UDP 广播一样工作,但适用于 TCP 协议。

注意:任何贡献都欢迎。

工作原理

YLTCPBroadcaster 的核心概念非常简单。为了模拟广播,库会在指定的 TCP 端口上创建与网络中每个主机的连接。然后它等待响应,并这样确定主机是否在指定的端口上打开。

用法

这是使用 YLTCPBroadcaster 的最简单方法

YLTCPBroadcaster *bc = [YLTCPBroadcaster defaultBroadcaster];

[bc scanWithPort:8080 timeoutInterval:1.5 completionHandler:^(NSArray *hosts) {
   // E.g.: ["192.168.0.3", "192.168.0.56", "192.168.0.87"]
   NSLog(@"Available hosts: %@", hosts);
}];

但是,如果您想在表格视图中实时显示找到的主机等,可以使能以下代理方法来提高响应性:

YLTCPBroadcaster *bc = [YLTCPBroadcaster defaultBroadcaster];
bc.delegate          = self;

[bc scanWithPort:8080 completionHandler:nil];

-(void)tcpBroadcaster:(YLTCPBroadcaster *)broadcaster didFoundHost:(NSString *)host {
  [self.tableView beginUpdates];

  NSIndexPath *indexPath = [NSIndexPath indexPathForRow:_remoteHosts.count inSection:0];
  _remoteHosts           = [_remoteHosts arrayByAddingObject:host];

  [self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationRight];

  [self.tableView endUpdates];
}

更多详细信息,请参阅示例项目。

需求

  • iOS 6.0+
  • Xcode 6.0

安装

建议在项目中使用YLTCPBroadcaster的方法是通过CocoaPods包管理器,因为它提供了灵活的依赖关系管理和简单的安装。

CocoaPods

如果尚未安装,请安装CocoaPods

$ [sudo] gem install cocoapods
$ pod setup

前往您的Xcode项目目录,创建和编辑Podfile,并添加YLTCPBroadcaster

$ cd /path/to/MyProject
$ touch Podfile
$ edit Podfile
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
pod 'YLTCPBroadcaster', '~> 2.0.1'

将YLTCPBroadcaster安装到项目中

$ pod install

打开您的项目文件(.xcworkspace文件,而不是普通的项目文件)

$ open MyProject.xcworkspace

手动

下载项目,并将YLTCPBroadcaster文件夹复制到您的项目中,然后在要使用它的文件中简单地使用#import "YLTCPBroadcaster.h"

联系

Yannick Loriot

许可(MIT)

版权(c)2014 - 当今,Yannick Loriot

兹在此许可任何取得本软件及关联文档文件(统称“软件”)副本之人,在不限制情况下使用软件,包括但不限于使用、复制、修改、合并、发布、分发、许可以及/或销售软件副本的权利,并允许软件接受人据此做出前述行为,但需遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“现状”)提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,无论是基于合同、侵权或其他法律行为,作者或版权持有者均不对任何索赔、损害或其他责任承担责任,无论该索赔、损害或其他责任是否由软件本身引起或与软件的使用或其他行为有关。