問題タブ [cocoaasyncsocket]

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 に答える
434 参照

iphone - onSocket:didReadData:withTag を呼び出すと、CocoaAsyncSockets が失敗するようです

CocoaAsyncSocket の onSocket:didReadData:withTag メソッドを呼び出そうとすると、何らかの理由で失敗し、読み取りからのデータが表示されません。

appDelegate:

CocoaAsyncSocket ライブラリからのメソッドは次のとおりです。

シミュレーターでアプリを実行すると、出力ログが次のように出力されます。

  • onSocket:didConnectToHost:port が呼び出され、NSLog が「接続済み」を吐き出します。
  • onSocket:didReadData:withTag が呼び出され、NSLog が「RX length: 8」を吐き出します。
  • onSocket:didReadData:withTag でも、NSLog は「Fail」を吐き出します。

間違っている場合は訂正してください。ただし、サーバーから読み取ったデータの値を「msg」に含めるべきではありませんか? Data Read は、データ長が 8 であることを期待していることを認識しているように見えますが、データが文字列に格納されていないようです。私はiOS、特にソケットプログラミングに非常に慣れていないため、これはすべて初めてです。この件に関するヘルプは大歓迎です。

ありがとう!

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

iphone - CocoaAsyncMethodを呼び出すときにアプリケーションがフリーズするscheduleDequeueRead

CocoaAsyncSocketライブラリを使用してTCPソケット接続を作成しています。私が抱えている問題は、いくつかのライブラリメソッドが呼び出された後、エラーが発生することです。

appDelegate:

そして、これがCocoaAsyncSocketライブラリからの私のメソッドです。

シミュレーターでアプリを実行すると、出力ログから次のように出力されます。

その後、このメソッドのAsyncSocket.mファイル(ライブラリの一部)でエラーが発生します。

具体的には、エラーはオンラインです。

例外は次のとおりです。 スレッド1:BAD_EXC_ACCESS(コード1 = 0、アドレス= 0xd0688b8a)

その後、アプリはシミュレーターで完全にフリーズします。なぜこれがアプリのフリーズを引き起こしているのかについて誰かが洞察を提供できれば、私は本当に感謝しています。

これが私が使用しているライブラリです: CocoaAsyncSocket

編集:

ゾンビオブジェクトを有効にしてシミュレーターでアプリを実行すると、出力に次のように出力されます。

これについて少し掘り下げて、何が起こっているのかを理解する必要があります。

編集2:

楽器を使って少し掘り下げた後、私は次のことを発見しました。

編集3:

エラーは次のようになります。

スレッド1:EXC_BREAKPOINT(code = EXC_I386_BPT、subcode = 0x0)

これが楽器のスクリーンショットです。しかし、私はこれをどのように解釈するかについては実際にはフォローしていません。割り当てが解除されたオブジェクトにメッセージを送信しているようです。これは本当ですか?もしそうなら、これがどこで発生するかを理解するにはどうすればよいですか?

画像が見づらい場合は、直接リンクをご覧ください: Instrumentsスクリーンショット

楽器のスクリーンショット

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

c# - cocoaasynsocketからcシャープサーバーへ

ソケットを介してiPhoneとC#サーバー間で通信したいのですが、cocoaasynsocketsを使用してLAN経由でiPhoneからC Sharpサーバーにソケットを作成しようとすると、サーバーにソケットが作成されません。(whatispmyip.com)にある127.0.0.1 / 192.168.2.102(local)/ IPのような別のIPを与えてみましたが、ゲインがありませんでした。

これが私のiPhone用テストコードです

これが私のcシャープサーバーコードです

不足しているもの、どのIPを指定する必要があるか、またはサーバー側またはiphone(クライアント側)にネットワークからソケットを受け入れる/作成するための設定がいくつかあります

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

iphone - iOS アプリケーションのリアルタイム通信には、XMPP フレームワークと CocoaAsyncSocket のどちらを使用するのが適切ですか?

アプリにリアルタイム通信 (チャットなど) を実装したいと考えています。XMPP フレームワークまたは CocoaAsyncSocket のどちらを使用すべきか混乱していますか?

CocoaAsyncSocket の動作については、ここで言及されています https://github.com/robbiehanson/CocoaAsyncSocket/blob/master/README.markdown XMPP の動作と同じように ? 説明してください。

前もって感謝します。

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

cocoa-touch - GCDAsyncUdpSocket がパケットをドロップし、大量の DISPATCH_WORKER_THREAD を作成する

でマルチキャスト クライアントを構築していますがGCDAsyncUdpSocket、大量のパケット損失に直面しています。

Wireshark でサーバーを監視し、AirCap で空中の WiFi パケットをキャプチャしましたが、パケットが適切に送信されていることを確認しています。ライブラリからのデバッグ トレースも調べたところ、 4000 などの大きな引数で呼び出されるGCDAsyncUdpSocketことがあることがわかりsocket4FDBytesAvailable:ましたが、ソケットを読み取ると、読み取ったバイト数が少なくなり、おそらく 500 バイトになり、パケットが失われます。ソケットバッファーを増やしましたが、それは役に立ちません。

最後に、偶然かどうかに関係なく、Instruments のタイム プロファイラーを使用していて、パケットを失うたびに DISPATCH_WORKER_THREAD の新しいインスタンスが 1 つ作成されることに気付きました。これは正常ですか?

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

iphone - GCDasyncUdpSocketとwifiインターフェース

en0はAppleiOSデバイスのwifiインターフェイスのようですが、私のコードでは、インターフェイスen0を指定すると、小さなマルチキャストクライアントが何も受信しません。何が間違っているのかについての手がかりはありますか?GDCasyncUdpSocketログにエラーが表示されない=>ソケットをポート(1234)インターフェイスにバインド((en0))

よろしく

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

ios - ストリームのプログラミングに問題がある

したがって、ここに問題があります。ストリームが適切なタイミングで書き込まれておらず、サーバーから応答を取得できません。ビルドを停止すると、サーバーに書き込みが行われ、サーバーが正常に動作するため、正しいデータを書き込んでいることがわかります。なぜこれが適切なタイミングで行われないのか、私は混乱しています。

GCDAsyncSocketを使用してソケットの読み取り/書き込みを行っています

すべてのネットワークを処理するために別のクラスを作成しました。コードは次のとおりです。

コンソールの内容は次のとおりです。

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

ios - iOS用GCDAsyncSocketがバッファを書き出していない

基本的に、NSDataオブジェクトを記述します。

実行すると、デリゲートを呼び出します

しかし、何らかの理由で、書き込みがバッファに送られると...サーバーに書き出されません。

ビルドを停止すると、ソケットがすべてを書き込むことを決定し、サーバーがそれを認識してしまうと思います。

これをどのように修正しますか?CocoaAsyncSocketは必要ないので、フラッシュする方法はありません... "/ n"などの行末を追加しようとしましたが、それでも何も起こりません。

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

ios - 時間通りに GCDAsyncSocket からの応答を読み取る (iOS)

この問題は非常に単純です。私はそれを処理する方法を理解するのに苦労しています。

私は次のようにデータを読みます:

ここで、予想どおり、デリゲート メソッドが呼び出され、JSON データを適切に読み取ります。

問題は、GCDAsyncSocket が非同期であるため、このコード ブロックです。

データが読み込まれる前に呼び出されます。データが読み込まれたことを確認してから分析するにはどうすればよいでしょうか。

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

ios - 複雑なソケット応答の読み取り

コード設計の質問があります。これを処理するための最も効率的な方法を考えるのに苦労しています。

基本的に、JSONリクエストを送信し、サーバーからのレスポンスを一度に読み返したいと思います。

私は次のような方法を持っています:

何を説明します

基本的に、JSON文字列をサーバーに送信し、失敗したかどうかの応答を取得します。

これをサーバーに書き込んで読み取る方法を知っています。問題はこれを一緒に行うことであるため、そのBOOL値をtrueまたはfalseとして返して、機能するかどうかを確認できます。

ソケットに書き込んだ後、応答を受け取り、デリゲートメソッドを介してそれを読み取る必要があります。

これは、サーバーが応答するとすぐに呼び出されます。問題は、ソケットへのこの読み取り/書き込みがすべて非同期で行われることです。

それが起こるので、私はこれを行う方法を持つことができません:

}

後に呼び出されるコード以来

データが読み取られる前に実行されます(すべて非同期であるため)。

私はそのデリゲートメソッドで何かをしなければならないことに気づきました。これは問題ありませんが、さまざまな種類の応答があり、それぞれの応答を異なる方法で処理する必要があります。

私の考えは、各書き込みコマンドにタグを付けてから、いくつかを使用することです。

didReadDataデリゲートメソッドで。

しかし、どうすればこのデータを正しく返すことができますか?BOOLを返す必要がある場合もあれば、NSDictionary、NSStringなどを返す必要がある場合もあります...

上記の各リクエストメソッドで関連データを返すことができるようにしたいと思いますが、できません(少なくとも効率的ではありません)。リクエストごとに2つの異なるメソッドを作成する必要がありますか?

すなわち

私はこれをどのように扱うかについて少し混乱しています。

はっきりしない場合はお詫び申し上げます。

私は私が得ることができるどんな助けにも感謝します。