当前位置: 首页 > news >正文

廊坊网站推广seo领导屋

廊坊网站推广,seo领导屋,一线全屋定制10大品牌,linux用.net做网站WiFi通信是指手机通过WiFi与外部设备建立连接#xff0c;并与外部设备进行交互、通信。手机与外部设备的WiFi通信通常是使用Socket来实现的#xff0c;在这里先介绍一个第三方Socket库#xff08;CocoaAsyncSocket#xff09;来实现WiFi通信。 CocoaAsyncSocket支持TCP和U…WiFi通信是指手机通过WiFi与外部设备建立连接并与外部设备进行交互、通信。手机与外部设备的WiFi通信通常是使用Socket来实现的在这里先介绍一个第三方Socket库CocoaAsyncSocket来实现WiFi通信。 CocoaAsyncSocket支持TCP和UDP其中 AsyncSocket类是支持TCP的 AsyncUdpSocket类是支持UDP的。 本文是建立在硬件通过UDP广播包广播自身信息手机与硬件之间通过TCP连接传输数据。 WiFi连接的建立 首先通过手动连接手机WiFi至外部设备此时可以获取到外部WiFi的一些信息 #import UIKit/UIKit.hinterface ViewController : UIViewControllertypedef void (^udpSocketBlock)(NSDictionary* dic,NSError* err);// block用于硬件返回信息的回调 property (nonatomic,copy) udpSocketBlock udpSocketBlock; - (void)sendUdpBoardcast:(udpSocketBlock)block; end #import ViewController.h #import AsyncSocket.h #import AsyncUdpSocket.h interface ViewController ()AsyncSocketDelegate,AsyncUdpSocketDelegate property (nonatomic,strong) AsyncUdpSocket *udpSocket; property (nonatomic,strong) AsyncSocket *socket; endimplementation ViewController- (void)viewDidLoad {[super viewDidLoad]; }- (void)sendUdpBoardcast:(udpSocketBlock)block{self.udpSocketBlock block;if(!_udpSocket)_udpSocket [[AsyncUdpSocket alloc] initWithDelegate:self];NSData *data [NSData data];// 此处data是根据硬件要求传参数UInt16 port 34343;// 此处具体指需询问硬件工程师[self.udpSocket enableBroadcast:YES error:NULL];[_udpSocket sendData:data toHost:255.255.255.255 port:port withTimeout:-1 tag:0];// 因为不知道具体的ip地址所以host采用受限广播地址 } - (BOOL)onUdpSocket:(AsyncUdpSocket *)sock didReceiveData:(NSData *)data withTag:(long)tag fromHost:(NSString *)host port:(UInt16)port{ // data 接收到的外部设备返回的数据id result [self unpackageMessage:data]; // 对数据进行处理此处调用的 - (id)unpackageMessage:(NSData *)data ;是根据与硬件方面协商的数据格式进行的数据处理if ([[result valueForJSONKey:typeid] isEqualToString:xxxx]) {self.udpSocketBlock([result valueForJSONKey:data],nil);} // 判断的到的数据是否为我们需要的数据return YES; // 发现设备后则关闭发现通道return NO; // 不关闭发现通道一直处于发现状态 } #pragma mark - udpSocket -(void)onUdpSocket:(AsyncUdpSocket *)sock didSendDataWithTag:(long)tag{} 通过调用该方法可以得到外部设备返还的WiFi信息 [self sendUdpBoardcast:^(NSDictionary *dic, NSError *err) {// dic为硬件返回的参数 }]; 获取硬件参数之后需要确认手机是否已于硬件连接直接调用方法 - (BOOL)isConnected; 若未连接则需建立手机和硬件之间的socket连接 - (BOOL)connectToHost:(NSString*)hostname onPort:(UInt16)port error:(NSError **)errPtr; // hostname、port均为硬件返回的 数据的写入和读取 CocoaAsyncSocket提供了写入数据和读取数据的方法 // 数据的写入 - (void)writeData:(NSData *)data withTimeout:(NSTimeInterval)timeout tag:(long)tag; // 数据的读取 - (void)readDataWithTimeout:(NSTimeInterval)timeout tag:(long)tag; 数据写入具体格式需要根据硬件要求来决定这里提供几种常用的数据类型转换方法以供参考 十六进制字符串转NSData -(NSData *)converHexStrToData:(NSString *)hexString {NSMutableData *data [[NSMutableData alloc] init];unsigned char whole_byte;char byte_chars[3] {\0,\0,\0};if (hexString.length%2) {//防止丢失半个bytehexString [0 stringByAppendingString:hexString];}int i;for (i 0; i [hexString length]/2; i) {byte_chars[0] [hexString characterAtIndex:i * 2];byte_chars[1] [hexString characterAtIndex:i * 2 1];whole_byte strtol(byte_chars, NULL, 16);[data appendBytes:whole_byte length:1];}return data; } NSData转十六进制字符串 -(NSString *) converDataToHexString:(NSData *)data {if (data nil) {return nil;}NSMutableString* hexString [NSMutableString string];const unsigned char *p [data bytes];for (int i0; i [data length]; i) {[hexString appendFormat:%02x, *p];}return hexString; } 十六进制字符串转普通字符串 -(NSString *)stringFromHexString:(NSString *)hexString {char *myBuffer (char *)malloc((int)[hexString length] / 2 1);bzero(myBuffer, [hexString length] / 2 1);for (int i 0; i [hexString length] - 1; i 2) {unsigned int anInt;NSString * hexCharStr [hexString substringWithRange:NSMakeRange(i, 2)];NSScanner * scanner [[NSScanner alloc] initWithString:hexCharStr];[scanner scanHexInt:anInt];myBuffer[i / 2] (char)anInt;}NSString *unicodeString [NSString stringWithCString:myBuffer encoding:4];return unicodeString; }
http://www.pierceye.com/news/490950/

相关文章:

  • 外贸网站做开关行业的哪个好网站互动优化
  • 西班牙语网站设计哪家好开发一个跑腿app需要多少钱
  • 怎么才能提高网站点击量 免费网站原型图软件
  • wordpress私人建站主题网络公司手机网站
  • 做网站设计比较好的公司wordpress wp_trim_words
  • 湖南对外建设集团网站wordpress中数据库配置文件
  • 设计类网站模板物流企业网站建设策划书
  • dw建设手机网站永久免费网站推荐
  • 微信官方网站怎么进入自己做网站推广试玩
  • 郑州网站建设老牌公司贵州省城乡建设厅网站材料价
  • 网站建设费是什么上海建设网站公司
  • 怎么查出这个网站是谁做的谷歌首页
  • 桂林网站建设国内crm系统哪家好
  • 网站建设数据库配置查看商标是否被注册官网
  • 关于网站制作做网站用com还是cn好
  • 手机网站支付网站建设 sheji021
  • 兴义网站制作网上开的公司网站打不开
  • 三只松鼠的网站建设理念桐庐营销型网站建设
  • 建设银行网站未响应大理如何做百度的网站
  • 广州建立公司网站多少钱页面跳转不了怎么回事
  • 爱做的小说网站吗百度权重高的发帖网站
  • 做网站的空间费用要多少产品怎么做推广和宣传
  • 商城网站制作明细老牌深圳公司大雨中解散
  • wordpress缩略图设置百度站长工具seo
  • 建站还有前途么食品包装设计规范及包装标准
  • 专门做漫画的网站企业网站改版seo
  • 最新网站建设合同做网站在哪里添加关键词
  • 集团网站开发多少钱做网站不难吧
  • 全总基层组织建设网站百度录入网站
  • 网站建设的实验步骤wordpress linux 建站教程