UDP
を使用して別のデバイスと通信する必要があるアプリがあります。 私はGCDAsyncUDPSocket
フレームワークを使用しています。iOS NSURL接続エラー-1002
私は私が最初に私は2つの異なるソケット、送信ソケットと受信ソケットを実装してこの問題を回避するにはポート14550.
に受け取るまで以上返送する必要がありますポートを知りません。
最初に、両方のソケットを初期化し、受信ソケットでポート14550を開きます。
func wifiConnect() {
receiveSocket = GCDAsyncUdpSocket(delegate: self, delegateQueue: dispatch_get_main_queue())
transmitSocket = GCDAsyncUdpSocket(delegate: self, delegateQueue: dispatch_get_main_queue())
do {
try receiveSocket!.bindToPort(14550)
try transmitSocket!.enableBroadcast(true)
try receiveSocket!.beginReceiving()
} catch _ as NSError { print("Issue with setting up listener") }
}
次に、データがそのポートで受信されるまで待ってから、送信ソケットの送信者アドレスに接続します。
func udpSocket(sock: GCDAsyncUdpSocket, didReceiveData data: NSData, fromAddress address: NSData, withFilterContext filterContext: AnyObject?) {
if !udpConneced {
do {
try transmitSocket?.connectToAddress(address)
} catch let error {
NSLog("Error connecting to address. %@",String(error))
return
}
}
dataReceived(data)
}
接続されていると、udpConnected
がtrueに設定され、機能が実行されます。
func udpSocket(sock: GCDAsyncUdpSocket, didConnectToAddress address: NSData) {
udpConnected = true
didConnect()
}
しかし、時には全体のアプリは、しかし、私は任意のURLを自分自身のいずれかのソケットを渡していない午前、クラッシュそしてこのエラー私は無効なURLであることを理解し
NSURLConnection finished with error - code -1002
を与えています。
この問題の原因は何ですか?私は接続装置のIPを知っているので、私はそれを使用して送信ソケットを接続する必要がありますか?
ありがとうございます!
質問には答えを含めないでください。問題を自分で解決した場合は、自分の*回答*を投稿することができます。ありがとうございました。 – Moritz