功能需求:
发送广播,搜索设备
【在wifi下无法接收广播,原因: 路由器阻止广播】
1 使用GcdasyncUdpSocket 实现广播 下载地址:包含tcp和udp,共4个文件http://download.csdn.net/detail/taoerit/9809540 2 Swift Code:
//
// VIEwController.swift
// 3-SwiftSocket-udp
// Created by 黄涛 on 17/4/10.
// copyright © 2017年 huangtao. All rights reserved.
//
import UIKit
class VIEwController:UIVIEwController,GcdasyncUdpSocketDelegate {
@IBOutletweakvar btnStart:UIbutton!
@IBOutletweakvar lbRecvMsg:UITextVIEw!
var mainQueue =dispatch_get_main_queue()
var udp:GcdasyncUdpSocket!;
let localPort:UInt16 =54321;
let boardcasePort:UInt16 =1001;
overrIDefunc vIEwDIDLoad() {
super.vIEwDIDLoad()
btnStart.addTarget(self,action:"btnStartClickFun",forControlEvents:UIControlEvents.touchUpInsIDe)
udp =GcdasyncUdpSocket(delegate:self,delegateQueue:dispatch_get_main_queue());
do
{
tryudp.enablebroadcast(true)
tryudp.bindtoport(localPort,interface:udpError);
tryudp.beginReceiving();
}
catch{
print("catch:\(udpError)")
}
}
var udpError:String?;
func btnStartClickFun(){
//开始广播
udp.sendData("#SYstem\n".dataUsingEnCoding(NSUTF8StringEnCoding),toHost: "255.255.255.255",port:boardcasePort,withTimeout: -1,tag:0);
}
func udpSocket(sock:GcdasyncUdpSocket!,dIDReceiveData data:NSData!,fromAddress address:NSData!,withFilterContext filterContext:AnyObject!) {
let recv:Nsstring =Nsstring(data: data,enCoding:NSUTF8StringEnCoding)!;
// 2 主界面ui显示数据
dispatch_async(mainQueue,{
let showStr:NSMutableString =NSMutableString()
showStr.appendString(recvasString)
showStr.appendString("\n")
self.lbRecvMsg.text = showStrasString;
})
}
func udpSocket(sock:GcdasyncUdpSocket!,dIDNotConnect error:NSError!) {
print("连接失败:\(error)")
}
func udpSocket(sock:GcdasyncUdpSocket!,dIDSendDataWithTag tag:Int) {
print("已经发送数据:\(tag)")
}
func udpSocketDIDClose(sock:GcdasyncUdpSocket!,withError error:NSError!) {
print("断开连接 error:\(error)")
}
func udpSocket(sock:GcdasyncUdpSocket!,dIDConnectToAddress address:NSData!) {
print("开始连接")
}
overrIDefunc dIDReceiveMemoryWarning() {
super.dIDReceiveMemoryWarning()
// dispose of any resources that can be recreated.
}
}
3 效果图 总结以上是内存溢出为你收集整理的Swift开发:GCDAsyncUdpSocket 通信之UDP广播全部内容,希望文章能够帮你解决Swift开发:GCDAsyncUdpSocket 通信之UDP广播所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)