iOS udp socket通信-远程唤醒windows电脑主机

一、原理说明

1、远程开机Wake onLAN(WOL)简介:
俗称远程唤醒,是现在很多网卡都支持的功能。而远程唤醒的实现,主要是向目标主机发送特殊格式的数据包,是AMD公司制作的MagicPacket这套软件以生成网络唤醒所需要的特殊数据包,俗称魔术包(Magic Packet)。MagicPacket格式虽然只是AMD公司开发推广的技术,并非世界公认的标准,但是仍然受到很多网卡制造商的支持,因此许多具有网络唤醒功能的网卡都能与之兼容。原理上我们不用深入,实现上是发一个BroadCast包,包的内容包括以下数据就可以了。FF FF FF FF FF FF,6个FF是数据的开始,紧跟着16次MAC地址就可以了。我们采用UDP协议发送广播包的形式来实现对电脑主机的唤醒
2、设置pc-B 首先需要进行BIOS和网卡设置,启动计算机,进入BIOS参数设置。选择电源管理设置“Power Management Setup”选项,将“Wake up on LAN”项和“Wake on PCI Card”项均设置为“Enable”,启用该计算机的远程唤醒功能。 (各个主板不一样,可以在百度上搜索怎么开启你家电脑的主板的远程唤醒功能)
3、获取pc-B的Mac地址 通过命令行输入ipconfig/all可以得到pc-B的地址 00 0B 2F 70 40 9E

二、代码实现

我们需要用到一个socket的三方AsyncSocket,这个三方比较老了,还是非ARC的代码,因为感觉用起来还可以,所以就一直在使用。
https://github.com/roustem/AsyncSocket
下载此三方,导入到项目中
备注:由于是非ARC模式的三方,我的项目是ARC模式,所以需要手动改成支持ARC模式
arc模式.png

1、新建一个类 继承NSObject即可 我们命名为”SocketConnect”

导入AsyncSocket

#import <Foundation/Foundation.h>
#import "AsyncUdpSocket.h"

定义SocketConnect.h的属性和方法

//ip地址
@property (strong,nonatomic)NSString *hostIpAddress;
//端口号
@property (assign,nonatomic)NSInteger hostPort;
//udp Socket
@property (strong,nonatomic)AsyncUdpSocket *udpSocket;

/**
 *  唤醒状态的回调
 */
@property (strong,nonatomic)void(^wakeState)(BOOL result);

//socket单例
+ (instancetype)sharedInstance;

/**
 *  远程唤醒电脑
 *
 *  @param sendData data数据
 *  @param result   返回唤醒的状态
 */
- (
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值