0
SwiftでCocoaAsyncSocketと再生していて、UDPソケットにバインドしてローカルネットワーク経由でメッセージを受信しています。macOS上のソケットにバインドするときのNSPOSIXErrorDomain
私はソケットを初期化していて、ポートにバインドしようとしていますが、NSPOSIXErrorDomain
エラーが発生しています。おそらく何らかのパーミッションの問題を示していますか?
マイコード:
import Cocoa
import CocoaAsyncSocket
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate, GCDAsyncUdpSocketDelegate {
func applicationDidFinishLaunching(_ aNotification: Notification) {
let socket = GCDAsyncUdpSocket.init(delegate: self, delegateQueue: DispatchQueue.main)
do {
try socket.bind(toPort: 53401)
} catch let msg {
NSLog("Error....\(msg)")
}
}
}
全エラー:
Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted" UserInfo={NSLocalizedDescription=Operation not permitted, NSLocalizedFailureReason=Error in bind() function}
私はObjective-Cで同じ問題があります。奇妙なことは、プロジェクトで提供されている 'UdpEchoServer'サンプルアプリケーションを実行すると、同じバインドコールが正しく機能することです。 – Jan