問題タブ [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.
ios - iOS で GCDAsyncUdpSocket を使用して 2 つのポートをリッスンするにはどうすればよいですか?
GCDAsyncUdpSocket
次のように、UDPを使用してデータを送受信するためにiOSで(正常に)使用しています:
デバイスはポート 3054 でデータを送り返します。これは、デリゲート コールを使用して確認できますudpSocket:didReceiveData: fromAddress:withFilterContext:
。また、デバイスはポート 9750 で情報を送信します。これも確認したいと思います。特定のポートにバインドしないことを試みましたが、他の理由で失敗します。また、使用して別のソケットを開始しようとしました
これらの呼び出しはエラーなしで成功しますが、ポート 9750 からデータを取得できません。
データが送信されていることは確かです。これは iOS 側の問題です。私はこれを知っています:
ロジック アナライザーは、ポート 9750 で送信するためにデータがデバイスに到着することを確認します。これは示唆的ですが、決定的ではありません。
デバイスが 2 番目のデータ ストリームを送信するために使用するポートを 3054 に切り替えることができます。この場合、アプリはデータを認識します。ただし、これは望ましくありません。
では、iOS で を使用して同じ IP アドレスの前にある 2 つの UDP ポートからデータを読み取るにはどうすればよいGCDAsyncUdpSocket
でしょうか。
ios - コントロールセンターが上にスライドすると、IOS 8 で GCDAsyncUDPSocket WiFi が中断されますか?
これは非常に奇妙に聞こえますが、IOS 8 でこの状況に遭遇した人が他にいるかどうか疑問に思っています。
GCDAsyncUdpSocket を使用して UDP 経由で低遅延オーディオを受信するアプリがあり、20ms ごとに約 200 バイトのパケットを受信します。フォアグラウンド、バックグラウンドなどでうまく機能します。
ただし、アプリの実行中に IOS 8+ のコントロール センターを上にスライドすると、次の 40 秒ほどの間、ソケットの応答性が非常に急激になります (0.5 秒ごとに約 350 ~ 400 ミリ秒の一時停止でパケットのバーストが発生します)。 、その後消えて正常に動作し始めます。GCDAsyncUDPSocket 呼び出しをデバッグすると、GCD イベント ハンドラーがこの遅延間隔で呼び出されていることがわかります (私のコードではないようです)。
セルラー接続を介してアプリを使用する場合、コントロール センターがスライドアップしている間はまったく問題ありません (一時停止/遅延なし)。これは WiFi のみの状況です。
これは、IOS 7 または IOS 6 では問題になりません。
これは、iPhone 4 から 6 Plus までのすべての iPhone モデルで発生します。
他の誰かがこの問題を見たことがありますか? 助言がありますか?やりたくないのですが、GCD ベース以外のネットワーク API を検討する必要がありますか?
ios - Swift: GCDAsyncUdpSocket で UDP を受信する
バックグラウンド:
iOS アプリとサーバーの間で UDP パケットを送受信できるようにしたいと考えています。サーバーは、すべての受信メッセージをクライアント アプリにエコー バックします。サーバーはテストされ、動作することが確認されています。GCDAsyncUdpSocketDelegate を実装する 2 つのクラス (1 つは送信用、もう 1 つは受信用) を起動する StartViewController があります。「送信ソケット」が機能し、サーバーがメッセージを受信します。
問題:
アプリは、送信された後に受信メッセージを取得することはありません。didReceiveData が呼び出されないため、リスニング ソケットの設定に何か問題がある可能性があります。
私はこれを完全に間違っていましたか?
始める:
受け取る:
送信:
編集: 忘れていたコード行を追加しました。
objective-c - ローカル ネットワークで GCDAsyncUDPSocket を使用してマルチキャスト ソケットにデータを送信する
マルチキャスト ソケットを購読して、そのソケットに投稿する他のデバイスをリッスンするアプリで作業しています。聞くと、すべてが正常に機能しています。問題は、ローカル ネットワークでそのソケットに投稿しようとしたときです。「ネットワークに到達できません」と表示され、データを送信できません。私のコードはこのようなものです。
ポート 5775
ソケットアドレス @"225.4.5.6"
リスナー
クライアント(送信者)
と、こんな感じで書いてみました。
このコードは、インターネットにアクセスできるときに機能します。しかし、ローカル ネットワークに接続すると、送信者に「ネットワークに到達できません」と表示されます。何が間違っているのかわかりません。あなたが私を助けてくれることを願っています。ありがとう。
ios - GCDAsyncUdpSocket を使用した iOS の迅速なアプリケーション
私はiOSアプリの構築に非常に慣れていません。
UDP マルチキャスト メッセージを受信するクラスを作成しようとしていますが、まったく動作させることができません...
私がどこで間違いを犯しているのか誰にもわかりますか?UDP ソケットが開かれたというメッセージが表示されますが、パッケージを受信していません。Wiresharkでキャプチャしているので、送信されていることがわかります。
ディスカバリーは、View Controller から呼び出されます
どんな提案も役に立ちます。
ios - GCDAsyncSocket を使用して送信された UDP パケットの応答を受信できない
UDP
をオンにするためにパケットを送信するアプリを作成していLED bulb
ます。Ad-hoc
によって作成されたに接続しているときに、すべてのアクションを実行できましたWifi bridge
。
Wifi bridge
次に、メイン ルータに接続できるように を設定します。Wifi bridge
この手順を実行するように AT コマンドを設定しましたが、送信したコマンドに対する応答を から受信できません。
手順は次のとおりです。
ステップ 1 : UDP メッセージを LAN ブロードキャスト IP アドレス "10.10.100.255" およびポート 48899 => "Link_Wi-Fi" に送信します。LAN
上のすべての Wifi ブリッジが詳細を応答します。応答は「10.10.100.254、ACCF232483E8」ですステップ 2 : (wifi ブリッジの設定を変更するためのオプション): 次に、「+ok」を LimitlessLED Wifi ブリッジに送信します。手順 1 で返された応答 IP アドレスに UDP メッセージを送信する "10.10.100.254" => "+ok"
- ステップ 3 : (wifi ブリッジの設定を変更するためのオプション): その後、モジュールに AT コマンド (\r\n で終わる) を送信できます。
UDP パケットを送信するためのコードは次のとおりです。
ソケットをセットアップしてデータを受信するために、次の 2 つのデリゲート メソッドを使用しています。
データを受信するには、UDP パケットの送信後に呼び出されるメソッドです。GCDAsyncUdpSocket
これは、UDP パケットを送受信するためにプロジェクトで使用したクラスのデリゲート メソッドです。
応答を受信できたら、ブリッジを構成するために次の AT コマンドを送信できます。
ありがとう。どんな助けでも大歓迎です。
objective-c - データの受信時に GCDAsyncUdpSocket が malloc エラーをスローする
GCDAcyncUDPSocket を使用してデータを受信しています。以下のコードでは、(timestamp, data) のタプルを作成し、それを別の配列に追加しています。これが私のコードです:
次のエラー malloc が表示されます。
これに関して何か助けを得ることができますか?
ありがとう