我正在制作一个应用程序来发送UDP数据包,以便打开一个LED bulb.当我连接到由Ad-hoc创建的创建时,我已经能够执行所有操作Wifi bridge.
现在,我想配置Wifi bridge它,以便它可以连接到我的主路由器.我有AT命令设置来执行此过程,但不知何故,我无法收到Wifi bridge我发送给它的命令的响应.
程序如下: -
步骤1:将UDP消息发送到LAN广播IP地址"10.10.100.255"和端口48899 =>"Link_Wi-Fi"
LAN上的所有Wifi网桥都将响应其详细信息.回复是"10.10.100.254,ACCF232483E8"
步骤2 :(可选择更改wifi网桥上的设置):然后将"+ ok"发送到LimitlessLED Wifi Bridge.将UDP消息发送到从步骤1"10.10.100.254"=>"+ ok"返回的响应IP地址
发送UDP包的代码如下
-(void)configureWifi{
counter++;
NSString *host = @"10.10.100.255";
if ([host length] == 0)
{
[self logError:@"Address required"];
return;
}
int port = 48899; //[portField.text intValue];
if (port <= 0 || port > 65535)
{
[self logError:@"Valid port required"];
return;
}
NSString *msg = @"Link_Wi-Fi";
NSData …Run Code Online (Sandbox Code Playgroud) 背景:
我希望能够在我的iOS应用程序和服务器之间发送和接收UDP数据包.服务器将每个传入的消息回送给应用程序的客户端.服务器已经过测试并确认正常运行.我有一个StartViewController,启动两个实现GCDAsyncUdpSocketDelegate的类,一个用于发送,一个用于接收."发送套接字"正在工作,服务器接收消息.
问题:
应用程序在发送后永远不会收到回传消息.听取套接字设置的东西可能是错误的,因为didReceiveData永远不会被调用.
我完全错了吗?
开始:
class StartViewController: UIViewController {
var inSocket : InSocket!
var outSocket : OutSocket!
override func viewDidLoad() {
super.viewDidLoad()
inSocket = InSocket()
outSocket = OutSocket()
}
@IBAction func goButton(sender: UIButton) {
outSocket.send("This is a message!")
}
}
Run Code Online (Sandbox Code Playgroud)
接收:
class InSocket: NSObject, GCDAsyncUdpSocketDelegate {
let IP = "255.255.255.255"
let PORT:UInt16 = 5556
var socket:GCDAsyncUdpSocket!
override init(){
super.init()
setupConnection()
}
func setupConnection(){
var error : NSError?
socket = GCDAsyncUdpSocket(delegate: self, delegateQueue: dispatch_get_main_queue())
socket.bindToPort(PORT, error: &error)
socket.enableBroadcast(true, …Run Code Online (Sandbox Code Playgroud)