問題タブ [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.
ios - 2つのiOSデバイス間にソケット接続を構築することは可能ですか?
同じネットワークに接続された2つのiOSデバイス間にソケット接続を構築することは可能ですか(ネットなし)?
可能であれば..(CocoaAsyncSocketプロジェクト)は私にとって役に立ちますか?
アプリをバックグラウンドに置くデバイスAからデバイスBにメッセージを送信したいだけです。デバイスBがメッセージを受信すると、アプリをフォアグラウンドに戻すための通知が表示されます。
これはAppStore向けではないので、Appleがこの動作のためにアプリを拒否するかどうかは気にしません。
ios - semaphore_wait_trap、GCD、CocoaAsyncSocket
現在、CocoaAsyncSocket を使用してアプリを構築しています。TCP サーバーに接続し、データの読み取り/書き込みを行います。
を使用してソケットを作成します
データを受信したら、FMDB を使用してデータベースに保存します。アプリを(ホームボタンを使用して)バックグラウンドに送信してから再開するまで、すべてが正常に機能します。UI がフリーズし、応答しません。デバッガーは、semaphore_wait_trap で待機していることを示します。
cocoaasyncsocket - AsyncSocketは、パケットの長さを示すNバイトのプレフィックスを作成する方法を教えてください。
iOSソケットプログラミングは初めてです。{packet、4}を使用してerlangを使用してtcpサーバーを実装しました。erlangソケット間での通信は簡単です。しかし、AsyncSocketでパケットの長さを4バイトで追加するにはどうすればよいですか?
いくつかのコードはありがたいです。
次のようにテストしましたが、サーバー側には影響しません。
ios - 呼び出されないAsyncSocketデリゲートメソッド
次のようなシングルトンクラスでソケットを保持します。
SocketConnection.h
SocketConnection.m
そしてviewControllerで:
サーバーにソケットが接続されていることがわかりますが、xcodeコンソールログには何もありません。デリゲートメソッドを呼び出せない理由を理解するのを手伝ってください。
cocoa - セッション終了前の TCP データ
セッションが閉じられる前に、TCP経由で送信されたすべてのデータを取得できる方法はありますか? 私が得ているのは、そのデータが受信された後にのみサーバーからセッションを閉じる必要があり、さらに EOL またはキャリッジリターンまたは "\n" または "\r" を手動で渡す必要があることです。
どんな助けや提案も大歓迎です。
iphone - CocoaAsyncSocket からのデータの読み取り
私は CocoaAsyncSocket を使用しています。サーバーにメッセージを送信し、サーバーが応答するまで待機する関数を作成する必要があります。デリゲート メソッドではサーバーの応答を受信しますが、メッセージを送信する関数がサーバーの応答を待機する必要があります。返信を返します。
ios - 不明な数の着信バイトを読み取る
私のアプリは、AsyncSocketを使用してTCP経由でサーバーと通信します。コミュニケーションが行われる状況は2つあります。
アプリはサーバーに何かを送信し、サーバーは応答します。アプリはこの応答を読み取り、その中の情報を使用して何かを行う必要があります。この応答は常に同じ長さです。たとえば、応答は常に6バイトです。
アプリは「アイドリング」状態であり、サーバーはある時点で通信を開始します(アプリには不明)。アプリは、サーバーが送信しているものをすべて読み取り(任意のバイト数にすることができますが、最初のバイトは後続のバイト数を示すため、読み取りを停止するタイミングがわかります)、この情報を処理する必要があります。
最初の状況は正常に機能しています。readDataToLength:timeout:tag
必要なものを返し、それを使ってやりたいことができます。実装方法がわからないのは2番目の状況です。readDataToLength:timeout:tag
事前に長さがわからないので使えません。
readDataWithTimeout:tag:
タイムアウトを-1に設定して、何かできると思います。これにより、ソケットは入ってくるものを常にリッスンできるようになると思います。ただし、それはおそらく、私が送信したものへの応答として入ってくるデータに干渉します(状況1)。アプリは、受信データをシチュエーション1またはシチュエーション2と区別できなくなりました。
私にこれを解決するのを手伝ってくれる人はいますか?
ios - UDPソケットはiOSの3Gネットワークでは機能しませんか?
私はGCDAsyncUdpSocketを使用していました、それはwifiネットワークでうまく機能していました
しかし、3gネットワークでテストすると、機能しないようです。
3GネットワークでGCDAsyncUdpSocketを使用することは可能ですか?
ios - AsyncSocket デリゲートが呼び出されていません
CocoaAsyncSocket ライブラリを使用してデータを送受信するアプリを作成しようとしています。
アプリの最初のバージョンでは、ビュー コントローラーでソケットが作成/初期化され、正しく呼び出されるデリゲート メソッドも配置されます。
WakmanFirstViewController.m
現在、ViewController からソケットの作成を削除し、Singleton クラスに配置して、他のビューからも同じ接続を使用できるようにしようとしています。
これを行うために、デリゲート メソッドも移動した新しいクラス (SocketConnection) を作成しました。
wakmanSocketConnection.h
wakmanSocketConnection.m
次に、Viewcontroller を変更しました。
WakmanFirstViewController.h
WakmanFirstViewController.m
接続は確立されますが、問題はデリゲート メソッドが呼び出されないことです。
wakmanSocketConnection.mでは、デリゲートを self に設定して、メソッドをコピーしたクラスを参照するようにしました。
誰かが問題を見つけるのを手伝ってくれますか?
ありがとう、コラード
ios - 読み取りタイムアウト後に GCDAsyncSocket が常に切断されるのはなぜですか?
読み取りタイムアウトを処理するコードで GCDAsyncSocket.m を調べました。タイムアウトを延長しないと、ソケットが閉じられたように見え、ソケットを生きたままにするオプションがありません。タイムアウトのタイミングを知る必要があるため、無限のタイムアウト (タイムアウト = -1) を使用できませんが、切断したくないからです。この背後に理由があるかどうかはわかりません。誰か知っていますか?
参考までに、このキープアライブ機能を追加するhttps://github.com/robbiehanson/CocoaAsyncSocket/pull/126にプル リクエストがありますが、まだプルされていません。