問題タブ [recv]

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 投票する
4 に答える
6155 参照

c - 2つのスレッドから同じブロッキングソケットでrecv()を呼び出します

ソケットが1つsあり、現在利用可能なデータがなく、それがブロッキングソケットであり、recv一度に2つのスレッドから呼び出すとどうなりますか?スレッドの1つがデータを取得しますか?両方ともそれを取得しますか?2回目の呼び出しrecvでエラーが発生しますか?

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

c++ - C++ - WinSock フックを迂回する

私がやろうとしているのは、Detours ライブラリを使用して、アプリケーションの WinSock2 send() および recv() 関数 (パケット ロガー) にフックすることです。

send() 関数では機能しますが、recv() 関数では機能しません。

これが私の関連コードです:

何か案は?

編集:そこで、recvfrom() と WSARecvEx() もフックしましたが、発信パケットはまだログに記録されません! 正確なコードでコードを更新しました。

0 投票する
5 に答える
22913 参照

sockets - MSG_PEEKを使用したノンブロッキングrecvが成功した場合、MSG_PEEKを使用しない後続のrecvも成功しますか?

これが私が取り組んでいるいくつかのコードの簡略化されたバージョンです:

recvへの最初の呼び出しが成功し、1〜32の値を返すと仮定した場合、2番目の呼び出しも成功すると仮定しても安全ですか?ret2をret1より小さくすることはできますか?どちらの場合?

(わかりやすくするために、recvへの2回目の呼び出し中に他のエラー状態がないと仮定します。シグナルが配信されない、ENOMEMが設定されない、などです。また、他のスレッドがfdを参照しないと仮定します。

私はLinuxを使用していますが、ここでLinux固有のものはMSG_DONTWAITだけだと思います。正しいfnctlが他のプラットフォームで以前に設定されていると想定します。)

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

objective-c - UDP パケットの送受信に関するヘルプ - C ソケット

わかりました、私の以前の質問のいくつかを見ると、私は単純な接続を確立して C ソケットで実行することに取り組んできました (私はプログラムのネットワーク全体の側面にまだかなり慣れていませんが、誰もがどこかから始めなければなりません。 、 右?)。これまでに持っている以下のコードを含めました。実行するとエラーは発生しませんが、同時に、相手側でパケットを取得できません。ちなみに、私は Objective-C でマルチキャスト ソケットをプログラミングしていますが、"msgStatus" は GUI の単なるラベルです (正しく接続されているので、問題はありません)。どこが間違っているのかわかりません。誰かが私を助けたり、正しい方向に向けたりできますか? ありがとう!

これが、IPアドレスを抽出するために使用しているコードです。

0 投票する
5 に答える
3524 参照

c++ - recv()でのhttpクライアントブロック

httpクライアントの作成についてサポートが必要です。Webサーバーからデータを受信しようとすると問題が発生します。recv()呼び出しは、プログラムをブロックします。より良い方向性は非常に役立ちます。以下にコードを投稿します。

}

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

windows - ソケットの受注

ソケットを使用して、TCP ストリーム モードでローカル マシンからリモートにデータを送信しています。ローカル側のコードは次のとおりです。

データのサイズは約 1Mb であるため、ソケットによって複数のパケットに分割される場合があります。リモート側でデータを受信して​​いる間、データを個別に受信してから結合する必要があります。リモート側のコードは次のとおりです。

奇妙なことはです。リモート側でメッセージブロックのコメントを外すと、受信順序が逆になります。したがって、リモート データの結果は正しい順序ではありません。

なんで?(そして、どうすれば各フラグメントの正しい順序を取得できますか?)

前もって感謝します。

0 投票する
7 に答える
162415 参照

python - Python ソケット受信 - 着信パケットのサイズは常に異なる

TCP サーバーに SocketServer モジュールを使用しています。recv()着信パケットのサイズは常に異なるため、ここで関数でいくつかの問題が発生しています。指定するrecv(1024)と(大きい値と小さい値で試しました)、パケット長が小さくすると(私は思う)、サーバーはタイムアウトまでスタックします。

クライアントが同じ送信元ポートを介して複数のリクエストを送信しても、サーバーが動かなくなった場合は、助けていただければ幸いです。

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

winapi - ストリーム (tcp) ソケットから正確なバイト数を読み取る方法は?

winsock では、指定されたサイズ (これは上限にすぎません) に関係なく、ストリーム ソケットで使用可能なデータが存在するとすぐに、同期recvと非同期の両方が完了します。WSARecvこれは、ストリームから一定のバイト数を読み取るために、カスタム バッファリングを適用する必要があることを意味します。また、各読み取りが個別にバッファリングされない限り、ダブル バッファリングが発生します。つまり、ソケットごとに実際には 2 つのバッファがあります。

winsock に代わりにデータをバッファリングし、指定されたバイト数が利用可能になったときにのみ操作を完了するように要求する方法はありますか (エラーが発生しない限り)。

編集:この機能は、特に非同期ソケットで機能するはずです。

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

http - winsocketを介して画像を受信する

サーフィン中に画像をキャッシュするために使用されるローカルマシンでプロキシサーバーを実行しています。プロキシを使用してブラウザを127.0.0.1に設定し、HTTPリクエストを受信し、データを取得してブラウザに送り返します。大きな画像を除くすべての場合に正常に機能します。画像情報を受け取ると、画像の半分(例:グーグルロゴの上半分)だけが表示されます。コードは次のとおりです。

socketClient_は非ブロッキングです。この問題を解決する方法はありますか?

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

c++ - HTTPサーバー、接続が受け入れられた後、recv()から-1が返されます

C ++でクラスのHTTPサーバーを実装する必要がありますが、接続が受け入れられた後、recv()-1を返します。どうすればこれを修正できますか?以下にコードを投稿しました。