問題タブ [gcdasyncudpsocket]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
338 参照

swift - UDP と GCDAsyncUDP での ARP の問題

GCDAsyncUDPSocket を使用して、UDP 経由でネットワーク上の複数のハードウェア デバイスと通信する Swift デスクトップ アプリケーションを構築しています。最初のスキャンでは、ソケットを作成し、ブロードキャスト メッセージを送信して応答をリッスンします。デバイスから応答を受け取ると、すべての追加通信のために、そのデバイス用に一意の非ブロードキャスト ソケットが作成されます。

有線イーサネットを使用する場合、これはほぼ完全に機能します。ただし、WiFi を経由すると、Wireshark に一定の ARP 要求が戻ってくることがわかります。その多くは、メッセージを受信するはずのインターフェイスの間違った MAC アドレスで応答されています。

私は 2 日間、ARP の問題に対する実証済みの真の解決策を探していましたが、運がありませんでした。

toHost の代わりに sendData toAddress を使用すると MAC アドレスが含まれることが GCDAsync のドキュメントでわかりますが、これを試すためにインターフェイスの詳細を使用してアドレス NSData オブジェクトを作成する方法を整理することができませんでした。 ARPの問題を解決します。

私のブロードキャストソケットの現在のコードは次のとおりです。

0 投票する
0 に答える
319 参照

ios - iPhone から udp ブロードキャストを送信しています。デバッガモードでのみ機能します。同じ IPA をインストールしても機能しない

GCDAsyncudpSocket を使用してブロードキャスト アドレスから udp パケットを送信し、データをリッスンします。
Mac OS X Yosmite (Xcode -> デバイス ipad air 8.2) からデバッガー モードでアプリケーションを実行すると、正常に動作します。デバイスに IPA をインストールしても機能しません。

これが私が使用した次のコードです: ****send****

受け取るには:

すぐに助けていただければ幸いです。ありがとう

0 投票する
0 に答える
212 参照

ios - GCDAsyncUdpSocket、データを受信しないときを知る方法

私はiOSアプリケーションに取り組んでいます。データを送信するたびに応答を送信するターゲットがあります。GCDAsyncUdpSocket を実装し、問題なくデータを送受信できます。ターゲットからデータが返ってこない場合に対処したいと思います。これは私が送るものです:

データを受信した場合、これは次のように呼び出されます。

しかし、何も返送されない場合、どうすればわかりますか? 何かが受信されたかどうかを知るために、データを送信した後に評価できるフラグや通知、または何かがありますか?

0 投票する
0 に答える
199 参照

objective-c - iPhone 用の同様の検出コードが見つかりません

ここで私はコードを与えています。iPhoneで同様のコードを作成しようとしています。しかし、それを正しく行うことはできません。誰でもそのために私を助けることができますか?サーバー検出コードです。

UDP Socket コードも試してみましたが、実際の結果は得られませんでした。ここにコードを投稿しているのと同じように、正しく機能させる必要があります。

iOS で次のコードを試しました:

しかし、次のエラーを取得します:

受信エラー: エラー Domain=GCDAsyncUdpSocketErrorDomain Code=1 「データを受信する前にソケットをバインドする必要があります。バインドを介して明示的に行うことも、接続を介して暗黙的に行うことも、データを送信することによって行うこともできます。」UserInfo=0x7f9fc25613a0 {NSLocalizedDescription=データを受信する前にソケットをバインドする必要があります。これは、バインドを介して明示的に行うことも、接続またはデータを送信することによって暗黙的に行うこともできます。}

これが正しいコードかどうかはわかりません。私に提案してください。

0 投票する
1 に答える
1645 参照

objective-c - 利用可能なすべてのネットワーク インターフェイスを介して GCDAsyncUdpSocket を使用した UDP ブロードキャスト

NAS デバイスを検索するために UDP パケットをブロードキャストするために GCDAsyncUdpSocket を使用しています。

以下は、UDP パケットを送受信するためのコード スニペットです。

上記のコードは、単一のネットワーク インターフェイス (Wifi、イーサネット、または Thunderbolt のいずれか) のみを介してパケットを送信できます。利用可能なすべてのネットワーク インターフェイスを介してブロードキャストしたいということです。(イーサネット、WiFi、サンダーボルトなど)。

利用可能なすべてのネットワーク インターフェイス (イーサネット、WiFi、Thunderbolt など) を同時に、同じポートを使用してブロードキャストする方法はありますか?

事前に感謝します。

0 投票する
1 に答える
436 参照

ios - iOS 9 で WiFi アシスト UDP 転送を無効にする

GCDAsyncUdpSocket を使用して、ローカル ネットワークで UDP パッケージを送信したいと考えています。私の懸念は、iOS 9 から新しく導入された「WiFi アシスト」のために、ある時点で UDP パッケージが LTE 経由で送信されることです。iOS 9 がトラフィックをセルラーネットワークに渡さないようにする方法はありますかWiFiを使用しますか?

アイデアをありがとう!

0 投票する
0 に答える
387 参照

swift - GCDAsyncUdpSocket による DIAL 検出

GCDAsyncUdpSocket を使用して、ネットワーク上の DIAL デバイスを検出しようとしています。こちらで指定されているように、Netflix の公式 C++ クライアントを使用してデバイスを検出することに成功しましたが、Swift プロジェクトで C++ または Objective-C++ クラスを使用することは避けたいと考えています。これが私の発見クラスであり、ソケットが作成されて開かれていることを報告しますが、何も受信されません。私がどこで間違っているかを理解するのに十分なほどDIALに精通している人はいますか?

0 投票する
1 に答える
42 参照

ios - NSUTF8StringEncoding から生成された NSString を比較する際のエラー

このメソッドを使用してアプリを使用してデータを受信します。

「LEDCube」を送信しても、if 文が常に 0 を返すため、先に進むことができません。

NSLogより、入力内容は「LEDCube」です。したがって、問題は NSUTF8StringEncoding にあると思われます。この問題に対処するには?

前もって感謝します

0 投票する
0 に答える
230 参照

ios - 警告「明示的な所有権なし」の問題のアーカイブ プロジェクト XCode

Xcode 7.2.1 では、プロジェクト、WebSocket を使用するアプリ、および CocoaAsyncSocket ライブラリを使用しているアプリをアーカイブすると問題が発生します。アプリはシミュレーターまたは任意のデバイスで実行されますが、アーカイブすると、xcode は次のエラー警告を表示します。

メソッドのクラス GCDAsyncUdpSocket で:

警告エラー:

次のような別の答えを試しました:

質問 1質問 2または質問 3

IDデリゲートまたはdispatch_queue_tが必要な場合、このARCの問題を修正するにはどうすればよいですか

また、プロジェクトをアーカイブする必要がある場合にのみこの問題が発生するのはなぜですか?

EDIT 1 この場合、ARCが間接的にリターンを処理する方法について誰かが考えていますか? エラー警告はメソッドでのみ表示されるためです。

.h ファイル:

.m ファイル:

私は iOS シミュレーターと任意の実際のデバイスでプロジェクトを実行できます。問題は、プロジェクトをアーカイブしたい場合のみです。Product>Analyze または Product>Build For>Running または Testing を実行すると、完全に実行されますが、Product>Archive を実行すると、または Product> Build For>Profiling エラー警告が表示されます

ありがとう!