問題タブ [gcdasyncsocket]

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 投票する
1 に答える
1453 参照

ios - iOS: GCDAsyncSocket とそのタグ

私のアプリでは GCDAsyncSocket を使用しており、次のように読み書きします。

デリゲート メソッドでデータを読み込んだ後:

このデリゲート メソッド内で "readDataWithTimeout" を思い出すので、この方法ですべてのデータを読み取ります。

私が行う場合、新しい呼び出しを行うときの問題ID:

tag = 2 で新しい書き込みと新しい読み取りを開始します。デリゲート メソッド「didReadData」が呼び出されると、私のコードは tag = 1; のブロック内に入ります。新しいタグを認識していないようです。

なぜそれが起こるのですか?

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

ios - ローカルネットワーク上のすべてのサーバーを見つける方法は?

iPad のサーバー クライアント アプリケーションに CocoaAsyncSocket を使用しています。現在、サーバーが稼働している場合、クライアントはサーバーの IP を入力して接続できます。このアプリを実行しているローカル ネットワーク上のすべてのサーバーを表示する方法はありますか?

ありがとう!

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

ios - CocoaAsyncSocket / GCDAsyncSocket: SSL/TLS セッションを閉じる (暗号化されていない TCP 接続に戻る) / 2 番目の SSL セッションを確立する / セッションを再ネゴシエートする

SSL 経由でサーバーに接続する際に問題があります。特別なコマンドを実行するとすぐに、通信しているサーバー上のサービスが切り替わり、SSL セッションが失われ、新しい SSL ハンドシェイクを行う必要があります。
どうすればGCDAsyncSocketでこれを行うことができますか? 呼び出した後[socket startTLS:...]、SSL セッション (のようなもの) を閉じて[socket stopTLS]から再度開くか、SSL セッションを再ネゴシエートする可能性はありません。また、TCP ソケットを切断して再接続したり、2 番目のソケットを使用して接続したりすることもできません。これは、最初にサーバーに接続したときに取得したエントリ ポイント サービスから再開するためです。

あなたが私に提供できるアイデアに感謝します!

前もって感謝します。

- 編集 -

新しい TCP ソケットを開かずに 2 番目の SSL セッションを確立する方法がまだわかりませんでした。SSLセッションを手動で再ネゴシエートする方法も見つかりませんでした...

何か案は?前もって感謝します!

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

ios - GCDAsyncSocket 複数の接続?

私はすでに GCDAsyncSocket を使用して 2 つのデバイスを接続しています。1 つは自分自身をブロードキャストして接続を受け入れ、もう 1 つはリッスンして接続を要求します。まだブロードキャストしているホストに別のデバイスを接続しようとすると、最初のデバイスがまだ接続されている間に接続が終了します。

複数の接続を受け入れるようにコードを再構築するにはどうすればよいですか? 私は何が欠けていますか?助けてください、私はこれを理解しようと一生懸命努力しています! これが私のコードです:


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

cocoa - GCDAsyncSocket を使用した (保護が弱い) 安全なサーバー

GCDAsyncSocket を使用して、保護が弱いサーバー (つまり、anon 暗号を使用して接続できるもの) を作成しようとしています。私が現在行っていることは次のとおりです。

  1. ポートにバインドしてリッスンを開始する

    /li>
  2. 次に、指定したポートに接続が到着すると、- (void)socket:(GCDAsyncSocket *)sender didAcceptNewSocket:(GCDAsyncSocket *)newSocketコールバックで受信します。ここでは、SSL/TLS 設定で辞書を作成します。

    /li>
  3. を呼び出して設定を適用した後startTLS、 がnewSocket切断され- (void)socketDidDisconnect:(GCDAsyncSocket *)sock withError:(NSError *)error、 が呼び出されます。エラー コードは 9800 (errSSLProtocol) です。

質問: 私が間違っている/していないことは何ですか?

私の推測では、私が指定していない証明書と関係があると思います。しかし、匿名暗号を行っている場合、証明書を指定する必要がありますか?