UDP
을 사용하여 다른 기기와 통신해야하는 앱이 있습니다. GCDAsyncUDPSocket
프레임 워크를 사용하고 있습니다.iOS NSURL 연결 오류 -1002
내가 처음 내가이 다른 소켓, 송신 소켓을 구현하는이 해결하기 위해 포트 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