問題タブ [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 に答える
5041 参照

iphone - GCDAsynSocketDelegatedidReadDataメソッドは呼び出されません。GCDAsynSocketの使用

GCDAsyncSocketを使用してメッセージを送受信しようとしていますが、機能しません。

接続を確立してメッセージを書き込んでいますが、読み取りに関しては、代理人が呼び出されることはありません。

私はiOS5とこのセットアップを使用しています:

クライアント:

デリゲートdidReadDataメソッドは呼び出されません

サーバ

クライアントにメッセージを書き込み、ソケット接続が成功すると応答を待ちます

そして、これは今までに呼ばれていません...

0 投票する
2 に答える
1827 参照

iphone - iPhone - インターネット経由のピアツーピア接続

Web サーバーとの非同期ソケット接続を使用するアプリを構築しています。大量のデータを送信するために、非同期ソケットを使用して 2 台の iPhone をピア ツー ピア接続に接続したいと考えています。私は、iOS SDK ソケット API よりも GCDAsyncSocket に精通しています。

私は似たようなことをしましたが、ローカル ネットワーク内でのみ NSNetService を使用してプレゼンスを公開し、p2p 接続から必要なアドレスを取得しました。

p2p ソケット接続を使用してインターネット経由で 2 台の iPhone を接続する方法のヒントを教えてください。

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

iphone - GCDAsyncSocketを使用してメモリエラーを割り当てることができません

を使用してTCP/IP経由でサーバーに動画をアップロードしようとしていますGCDAsyncSocket。時々、私が取り除くことができなかったエラーでソケットが切断されます:

2011-12-17 11:39:25.073 Hadza [433:707] socketDidDisconnect、エラー:エラードメイン=NSPOSIXErrorDomainコード=12「メモリを割り当てることができません」UserInfo=0x2aa260 {NSLocalizedFailureReason = write()関数のエラー、NSLocalizedDescription=メモリを割り当てることができません}

私はいたるところを探してきましたが、これの原因、修正方法、またはこの問題の回避方法を実際に理解することはできません。

アプリがファイルをアップロードするために従うフローは次のとおりです。

  1. サーバーへの書き込み(media_id)
  2. サーバーからACKサインを読み取る
  3. すでに送信されたバイト数を読み取る
  4. 最後に送信されたバイトからビデオを書き込みます
  5. ACK信号を待って読み取ります(アップロードに問題がなかったことを意味します)
  6. すべてがうまくいったら、終了します。エラーが発生した場合は、エラーに応じて1または3から再起動します。
0 投票する
1 に答える
2325 参照

udp - GCDAsyncUdpSocket の最大パケット サイズを設定する

GCDAsyncUdpSocket を使用して、マルチキャスト グループとの間でデータを送受信しています。GCDAsyncUdpSocket.m ファイルで、次の設定を見つけて、たとえば値を 32768 に変更しました。しかし、9216 バイトを超えるパケットはまだ受信できません。

別の設定はありますか?

編集: GCDAsyncUdpSocket クラスが setMaxReceiveIPv4BufferSize と呼ばれるこの値を設定するメソッドを提供していることを発見しました。それを試してみましたが、それでも約 9216 バイトでしか受信しませんでした。

0 投票する
2 に答える
414 参照

cocoa - EventMachine 送信データ バッファーが送信を停止し、完全にいっぱいになるのはなぜですか (他の接続は引き続き送信できます)。

TCP データを Mac クライアントに (GCDAsyncSocket 経由で) 送信する EventMachine サーバーがあります。しばらくの間は常に問題なく動作しますが、必然的に、サーバーは接続ごとにデータの送信を突然停止します。接続は引き続き維持され、サーバーは引き続きクライアントからデータを受信しますが、逆方向には進みません。

これが発生すると、connection#get_outbound_data_size を介して、接続送信バッファーが (#send_data を介して) 無限にいっぱいになり、クライアントに送信されていないことがわかりました。

これが発生する可能性がある特定の (そしてできれば修正可能な) 理由はありますか? リアクターはハミングし続け、サーバーへの他のアクティブな接続は正常に動作し続けます (ただし、バッファ地獄に陥ることもあります)。

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

iphone - GCDAsyncSocket を使用してバイナリ パケットを送信する方法

CGDAsyncSocket を使用してハードウェア デバイスとの接続を作成しましたが、次のステップはそのデバイスにバイナリ データを送信することです。

この点で私が困惑しているのを助けてください

0 投票する
3 に答える
2344 参照

objective-c - iOS パケット長

私は本質的にSOAPのようにXMLを前後に交換する小さなアプリを書いています。OS X ベースのサーバーと iPad クライアントがあります。クライアントで使用KissXMLし、サーバーで組み込みの XML パーサーを使用します。私はGCDAsyncSocket通信するために両方を使用します。

iPad シミュレーターでアプリをテストすると、完全な XML が表示されます。すべて正常に動作します。

ただし、開発デバイス (実際の物理 iPad) を使用すると、他のすべては正常に動作しますが、XML は 1426 文字目以降で終了します。このエラーは、複数の iPad で発生することを確認しています。

着信パケットをサブスクライブすると、以前は単純なものGCDAsyncSocketを使用 していましたが、どちらも同じ結果になりました。シミュレーターでの実行は問題ないため、GCDAsyncSocket のせいではないようです。atは「無限」バッファを示すことに注意してください。[sock readDataWithTimeout:-1 buffer:[NSMutableData new] bufferOffset:0 maxLength:0 tag:0];[sock readDataWithTimeout:-1 tag:0];0maxLength

誰がこれを引き起こしているのか考えていますか?

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

ios - GCDAsyncUdpSocketによるマルチキャストUDPの送信は失敗し、Wiresharkでのアクティビティはありません

次のような既知のIPでは問題なく動作します。

しかし、ブロードバンドマルチキャストを使用しようとすると、何もログに記録されず、何も起こりません。

作品を受け取っても大丈夫です、私も255.255.255.255を試しました-同じです。エラーは発生しません。

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

ios - XcodeGCDAsyncSockettelnet接続

telnet接続を使用するためにGCDAsyncSocketを使い始めるのに問題があります。ターミナルを介して接続すると、テキストが表示され、ログインを求められます。GCDAsyncSocketを使用すると、接続を取得できますが、そこからテキストを取得できません。

データはfffd01ffで応答しますfd1ffffb01fffb03

応答は常にnullです。

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

objective-c - GCDAsyncUdpSocket マルチキャストが HTTP 412 応答を取得する

マルチキャスト メッセージ (SSDP) を送信し、そのプロトコルを実装するデバイスからの応答をリッスンする iOS アプリケーションを構築しています。GCDAsyncUdpSocket を使用して UDP ソケットを作成し、SSDP メッセージをブロードキャストして応答を受信して​​います。私が抱えている問題は、アプリケーションがネットワーク上のすべてのデバイスから受信するメッセージが同じであるということです。つまり、HTTP 412応答です。

これが私のコードです:

ソケットの初期化

ソケットの作成

データ受信コールバック

関数が呼び出されると、didReceiveData次のメッセージが表示されます。