問題タブ [tcpsocket]
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.
ruby - Rhomobile アプリケーションの Windows Mobile で TCPSocket.open() が失敗する
RhoMobile アプリケーション (Ruby のコード) で TCPSocket を使用して、デスクトップで実行されているサーバー (C#.Net のコード) と通信しています。
Socket(2)
行の実行中にエラーが発生しますTCPSocket.new
。
Android Simulator と RhoSimulator では問題なく動作しています。しかし、Windows Mobileの場合はそうではありません。
Web で多くの検索を行い、非常に多くのサンプルを試しましたが、解決策が見つかりませんでした。事前に感謝します。
助けてください..
ruby - ruby での APNs エラー処理
Apple デバイスにバッチで通知を送信したい (たとえば、バッチで 1.000 デバイス トークン)。メッセージが APNs に配信されたことを確認できないようです。
コードサンプルは次のとおりです。
主な問題は、ssl_connection が確立された後にネットワークがダウンした場合です。
エラーが発生することはありません。接続がまだ機能していることを確認する方法はありますか?
2 つ目の問題は、ssl.write と APN からの Ready エラー応答の間の遅延です。最後のメッセージが送信された後、タイムアウト パラメータを IO.select に渡すことができます。たぶん、1.000 バッチを数秒間待つのは問題ありませんが、異なる bundle_id に対して 1.000 メッセージを送信する必要がある場合はどうでしょうか?
c++ - 標準 C++ TCP ソケット、std::async を使用すると接続が EINTR で失敗する
タスクにソケットが含まれている場合、std::async を使用してタスクを並列実行するのに問題があります。
私のプログラムは、Linux 用の標準 C++ で書かれた単純な TCP ソケット サーバーです。クライアントが接続すると、専用のポートが開かれ、個別のスレッドが開始されるため、各クライアントは独自のスレッドで処理されます。
クライアント オブジェクトはマップに含まれています。
すべてのクライアントにメッセージをブロードキャストする機能があります。私はもともと以下のように書いていました:
これをテストしたところ、一度に 3 つのクライアントで動作します。メッセージは 3 つのクライアントすべてに (一度に 1 つずつ) 届き、応答文字列はこのループで 3 回出力されます。ただし、メッセージは一度に 1 つのクライアントにしか送信されないため、低速です。
より効率的にするために、std::async を利用して、すべてのクライアントに対して SendMessageToClient 関数を非同期的に呼び出すことを望んでいました。上記のコードを次のように書き直しました。
上記のコードは、マップ内にクライアントが 1 つしかない場合に期待どおりに機能します。「送信開始」に続いて「送信終了」がすぐに続き、すぐに「待機開始」が続き、3 秒後に (これをテストするためにクライアント応答側で 3 秒間スリープします)、ソケットからのトレースが表示されます。関数を読んで、応答が来ることを確認すると、「end wait」と表示されます
問題は、マップに複数のクライアントがある場合です。ソケットを開いて接続する SendMessageToClient 関数の部分で、以下のコードで失敗します。
出力は次のとおりです。「接続されたクライアント スレッド: 接続に失敗しました 4」。
このエラーコードを調べたところ、次のように説明されています。
私はインターネット上で検索しましたが、システムコールが信号によって中断されているという言及がいくつか見つかりました。
一度に1つずつメッセージ送信関数を呼び出すとこれが機能するのに、非同期を使用してメッセージ送信関数を呼び出すと失敗する理由を誰かが知っていますか? 複数のクライアントにメッセージを送信する方法について、別の提案がある人はいますか?
ruby - Ruby SSLSockets でクライアントアドレスを取得する
私は今日TCPSocketsで遊んでいて、使用していました
クライアントの IP アドレスとポートを取得します。クライアントとサーバーに SSL を追加しましたが、これはつまり、
はサポートされていません ( https://bugs.ruby-lang.org/issues/8126に記載されているとおり)。この情報を取得するために使用できる別の方法はありますか? 私はしばらくグーグルで検索しましたが、役に立つものを見つけることができませんでした。
android - TcpSockets android: サーバーの応答なしで bufferreader.readline から戻る方法
以下のコードは AsynTask と try-catch で実装されています。サーバーが指定された時間内に応答しない場合、 bufferreader.readline() を中断したい。どうすればこれを達成できますか?
ruby - SSLSocket(Ruby)で新しいデータが利用可能になったことを通知する方法はありますか?
Ruby の上にカスタム クライアントを構築する作業を行っていますSSLSocket
。データを受信するために、モジュールが提供するread
およびread_nonblock
メソッドを使用してきました。OpenSSL::Buffering
メッセージを受信したときに実行されるコールバックを (ユーザー定義ブロックを介して) 定義できるように、これまでに得たものを使用しようとしています。基本的に、これらの行だけで何かを実装する必要があるようです:
このアプローチの問題点は、真のイベント駆動型ではないことと、データが実際に利用可能になってから最大 100 ミリ秒の遅延が発生する可能性があることです。もちろん、スリープ時間を変更することもできますが、ちょっとハックっぽい感じです。
これに使用できるより良いアプローチはありますか? そうでない場合、より短い/より高速なループ (例: ) を実装することを決定する必要がありsleep 0.01
ますか?
ruby-on-rails - Rspec で TCPSocket をモックする
TCPサーバーに接続し、1行の文字列を配置して接続を閉じる簡単な方法があります。接続が閉じられると、メソッドは特定のページにリダイレクトされます。
私はそのメソッドのリダイレクトをテストすることに興味があり、TCP 接続の値は気にしません。したがって、回避するための私の最良のオプションは、接続をモックすることです。ここに方法があります、
私のテストは次のようになります。
私の問題は、リダイレクト部分に到達できるように接続をモックする方法がわからないことです。何かご意見は?