問題タブ [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.
iphone - Sockets から cocoaasyncsockets に切り替える (文字列変換に関する質問)
この質問は、いくつかの C++ ヘッダーを利用する ObjectiveC で書かれた iOS プロジェクトに関連しています。
このメソッドを使用して、TCP を使用してサーバーにメッセージを送信しています。ご覧のとおり、特定のプロトコルに準拠するように文字列を変更する C++ メソッドが呼び出されています。この文字列はストリームに書き込まれます。
ストリームを直接処理する代わりに、cocoaasyncsocket フレームワーク (http://code.google.com/p/cocoaasyncsocket/) を使用する予定です。質問: このフレームワークを使用して同じ機能を実現するにはどうすればよいですか?
このフレームワークを使用してサーバーに書き込むと、次のようになります。
これらは、エンコードとデコードに使用される 2 つの方法の定義です。
実際、char* (encode メソッドの結果) をサーバーに送信する方法を探していますが、「NSString* から char* へ、uint8_t* から NSString* への変換」全体については不明です。
このフレームワークを使用して同じ結果を得るために、この種の変換を処理する最良の方法は何ですか?
回答と時間を割いていただきありがとうございます。
objective-c - cocoaasyncsocket 送信データ >128 バイト (Google プロトコル バッファ)
cocoaasyncsocket を使用して、データ Google プロトコル バッファ ( http://code.google.com/p/metasyntactic/wiki/ProtocolBuffersを使用) を Java サーバーに送信しています。これはすべて問題ありませんが、メッセージ (protoToSend) > 128 バイトの場合、Java サーバーがメッセージの長さを正しく読み取ることができないため、問題が発生しています。Objective C から間違った長さを送信しているためだと思います。
現在、次のようにデータを送信しています。
何か案は?
前もって感謝します
iphone - CocoaAsyncSocketとソケットからのデータの読み取り
TCPソケットベースのサーバーでは、パケットをストリーム経由で送信します。パケットは、パケットのバイト数を指定するヘッダーと、それに続くそのバイト数で構成されます。Erlangに精通している人のために、私は単に{packet、4}オプションを設定しています。iOS側では、このメッセージのストリームのサイズを把握したい場合、次のようなコードがあります。
これは正常に機能し、次のデリゲートメソッドコールバックが呼び出されます。
次の論理的なステップは、ストリームのサイズを把握することだと思います。これは、次の方法で行います。
サーバー側で12バイトの文字列をハードコーディングした後、readLengthは実際にクライアントでも12を読み取るため、これまでのところすべて問題ありません。私は次のように進めます:
この時点で、コールバックonSocket:didReadData:withTag:
は呼び出されなくなりました。代わりに、読み取りのタイムアウトが発生しています。おそらく、読み取りを適切に処理しなかったために、このデリゲートメソッドが呼び出されます。
したがって、サーバーは合計で16バイト、4バイトのヘッダー、および12バイトのバイナリストリームを送信します。
エラーは、CocoaAsyncSocketの使用方法にあると確信しています。サイズを把握した後、残りのストリームを読み取る正しい方法は何ですか?
** アップデート **
クライアントを変更しましたが、現在は機能しているようです。問題は、新しいソリューションでのreadDataToLengthのポイントがわからないことです。最初の読み取りを次のように変更しました。
コールバックで、次のことを行います。
つまり、すべてが1つのアトミックペイロードとして入ってくるのです。おそらくこれは、Erlang {packet、4}の動作方法が原因です。そうだといいのですが。それ以外の場合、readDataToLengthのポイントは何ですか?クライアントでメッセージの長さを事前に知る方法はないので、そのメソッドを使用するための良いユースケースは何ですか?
objective-c - サーバー/クライアントが正しく通信していません(CocoaAsyncSocket)
CocoaAsyncSocketで半動作する単純なクライアントおよびサーバーアプリケーションがあります。クライアントを使用してサーバーに接続でき、クライアント間でデータをやり取りできます。デリゲートメソッドは正しく起動しているようです。私の問題は、デリゲートメソッドの1つに渡される(AsyncSocket *)オブジェクトにのみデータを送り返すことができることです。接続を受け入れるときに、ソケットをNSMutableArrayに追加しますが、後でソケットを使用しようとすると、書き込みが失敗します。それで
動作しません。サーバーとクライアントのコードは以下のとおりです。最初の通信は機能しますが、通知が呼び出されると、NSLogステートメントがアレイ内のソケットをテストし、適切なIPアドレスとポート番号を取得してもデータは送信されません。
サーバ:
そしてクライアント:
私のstackoverflowを助けてください、あなたは私の唯一の希望です!
ssl - CocoaAsyncSockets と Java Sockets を使用した SSL/TSL
AsyncSockets を使用して cocoa でソケット サーバーを作成し、Java に接続したいと考えています。Java がサーバーで cocoa がクライアントの場合、SSL を有効にすることはできますが、私はその逆が必要です。私はココア内のいくつかの設定が欠けていると思うので、私のJavaコードをここに示します: 私は渡すことによってクライアントを開始しています:
_
そして私のココアコードのビット:
Java クライアントからココア サーバーにメッセージを送信するとすぐに、次のエラーが表示されます。
誰かがそれを適切に使用する方法のヒントを持っていますか?
iphone - 「iphoneソケット」で通信プロトコルをプログラムする方法は?
私はAndroid用のクライアントサーバーアプリケーションをプログラムしましたが、iPhone用にも同じことをしています。重要なのは、JavaサーバーとAndroidクライアントを使用した通信プロセスで、次のようなプログラムを作成したことです(疑似...):
今私の問題は、「iphoneソケット」ではそれを行う方法がわからないということです。私はAsyncScoketライブラリを使用していますが、そのライブラリでは読み取りがブロックされておらず(私にとっては複雑なことです)、正しく使用する方法がわからないコールバックを使用しています。
読み取りが完了したら、送信されたデータが「Something1」または「Something2」と等しいかどうかを適切なコールバックでテストする必要があると思います...しかし、最初の小さな問題は、順序がないことです。
プロトコルを変更する時間がないということを言わなければなりません。
誰かが私を案内してくれたら、私はとても感謝しています。または、ネットワーク通信がAsyncSocketライブラリを使用して行われるコード例。
ありがとうございました!
objective-c - cocoa asyncudpsockets はバイトストリームを送信しません
UDP データグラムをサーバーに送信する小さな MAC OS X アプリケーションがあります。
これを行うためにココア asyncudpsockets ( http://code.google.com/p/cocoaasyncsocket/ )を使用したいのですが、「sendData」メソッドを呼び出しても何も起こらないという問題があります。
stream は Byte* で、データグラムが含まれます。ホストは NSString としての IP アドレスです。
誰でも私を助けることができますか?
iphone - AsyncSocket は自分のシミュレーターでは動作しますが、パートナーのシミュレーターでは動作しません - 接続キャンセル エラー
パートナーと私はまったく同じコードをチェックアウトしましたが、どちらも同じネットワークを使用しています。
AsyncSocket を使用してソケットに接続しようとすると、機能します。私のパートナーがまったく同じことをするとき、そうではありません。
グーグルを試しましたが、牽引力がありません。任意のヒント?
iphone - uitableviewcontroller に非同期ソケットで reloadData を指示する方法
tableViewController のボタンをクリックして関数 didReadData で必要なデータを取得し、tableView の reloadData を呼び出すときに、cocoaAsyncSocket を使用しています。tableView の参照を取得するにはどうすればよいですか? appDelegate、シングルトンを使用するか、単にパラメーターとして送信するかを教えてください。または、私のデザインがすべて間違っている場合。ありがとう
objective-c - asyncsocketはソケットを受け入れますが、ホストに接続しません
Objective-cアプリで基本的な非同期ソケットを実行し始めたところですが、telnetに接続するとdidAcceptNewSocket:メッセージが表示されますが、突然切断されます(「接続が外部ホストによって閉じられました」 )didConnectToHost:メッセージに到達せずに。この例では問題なく動作し、そこに表示されるすべてのものを複製しようとしましたが、役に立ちませんでした。
避けるべき簡単な落とし穴はありますか?この問題をデバッグする他の方法はありますか?