問題タブ [winsock2]

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

windows-xp - Windows XP および ICMPv6 上の WinSock2

ping6WinSock2 を使用してプログラムで ICMPv6 エコー リクエスト ( ) を送信しようとしています。ICMPv6 チェックサムは、送信される IPv6 パケット全体に基づいて計算されます。そのため、私が理解していることから、OS(カーネル?)はそれを計算し、パケットを送信するときにICMPv6ヘッダーに書き込むことになっています。

これは SUSE Linux Enterprise Server 11 では非常にうまく機能しますが、Windows XP ではそうではないようです。チェックサムはデフォルトで設定した値 (ゼロ、Wireshark を使用して分析) のままになるため、受信側はそれを破棄し、応答しません。

この WinXP マシンでは IPv6 が正しく設定されています。Wireshark の助けを借りて、まったく同じコードを使用して送信された SUSE Linux サーバーからの ICMPv6 ping に正しく応答することがわかりました。したがって、Windows XP が ICMPv6 をサポートしていないわけではありません。しかし、Windows XP の WinSock2 はそうするのだろうか。

WinSock2 API はIPPROTO_ICMPV6、生のソケットを作成するためのプロトコルを提供します。ICMPv6 チェックサムを自動的に計算するために設定する必要がある特別なソケット オプションはありますか、それとも他のトリックはありますか?

0 投票する
3 に答える
15526 参照

c - C プログラムで ws2_32.dll のリンカ エラーが発生するのはなぜですか?

Visual Studio 2010 でプログラムを作成しています。名前が付けられたファイルws2_32.dllをプロジェクトにリンクできません。

どうすればそれができるか教えてもらえますか?

0 投票する
3 に答える
2156 参照

c - cを使用してwinsock2で画像を送信する方法

私はc(winsock2)で非常に単純なWebサーバーを書いています。

HTMLページのコンテンツを返すことができます。

現在、私が行っているのは、ファイルの内容をchar *バッファーに書き込み、「send()」を使用して送信することです。

画像(jpg、bmp)を読み込もうとすると、バッファに文字を書き込めませんが、一部の文字は「null」(0)です。

画像ファイル全体を送信するにはどうすればよいですか?

ありがとう。

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

c++ - ソケットrecv呼び出しは、スレッドを約1秒間フリーズします。5秒

私は、Windows7でブロッキングソケットを使用してC++で実装されたクライアントサーバーアーキテクチャを使用しています。すべてが特定のレベルの負荷まで正常に実行されています。メガバイトのデータを送受信するクライアントが2つ(たとえば> 4)ある場合、1つのクライアントとの通信が約5秒間フリーズすることがあります。その場合、他のすべてのクライアントは期待どおりに機能しています。

バッファサイズは8192バイトで、サーバー側のログは次のようになります。

TimeStamp(s.ms)-受信したバイト

…</p>

1299514524.618-8192

1299514524.618-8192

1299514524.618-0004

1299514529.641-8192

1299514529.641-3744

1299514529.641-1460

1299514529.641-1460

1299514529.641-8192

…</p>

その5秒以内に読み取ることができるのは4バイトだけのようです。さらに、凍結時間は常に約5秒であることがわかりました。4秒以下、6秒以上になることはありません...

何か案は?

よろしくお願いします

マイケル

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

c++ - Winsockのsend()は奇妙に機能します

接続を受け入れてクライアントにメッセージを送信する実験的なサーバープログラムを作成しようとしています。クライアントを接続させましたが、本当に奇妙なことをしなければメッセージを送信できないようです。

たとえば、このスニップにconnは、接続されたソケットがあります。

うですね、Telnet経由で接続すると、何も表示されず、ただ終了します。ただし、このスニップの最後に行を追加するとcout << sendRes、突然機能し、テストが表示されます。Telnetで、必要に応じて。

それで、知っている人に聞いてみたいのですが、なぜそういうふうに振る舞うのですか?

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

c++ - データの文字列を構造体のベクトルにトークン化しますか?

したがって、TCP winsock 接続を介して受信されている次のデータ文字列があり、各構造体が 1 つのレコードを表す構造体のベクトルに高度なトークン化を行いたいと考えています。

文字列内の各レコードは、キャリッジ リターンで区切られます。レコードを分割しようとしましたが、まだフィールドを分割していません:

コロン (内部フィールドセパレーター) を介して各レコードをさらにトークン化し、各構造体をベクターにプッシュするために、そのすべてのコードをもう一度繰り返す必要はまったくないようです。これを行うためのより良い方法があると確信しているか、設計自体が間違っている可能性があります。

助けてくれてありがとう。

0 投票する
3 に答える
122 参照

c++ - accept() への不適切な呼び出しの処理に関する懸念

私は個人的な学習目的でMUDサーバーを作成していますが、幸いなことに、ソケットのものをいくつかのクラスにまとめることができ、すべてが正しく機能しているように見えます。サーバーは接続をリッスンして受け入れ、現在クライアントからテキストを取得してすぐに送り返します。

問題は、WSAEWOULDBLOCK または有効なソケット以外の何かを返す accept() の呼び出しをどうするかよくわからないということです。新しいソケットを 0 にリセットして戻るだけで、何か問題が発生したというエラー メッセージが表示されるのでしょうか? これは私が現在行っていることですが、20回発生した場合はサーバーをシャットダウンします.

TopSocket と NewSocket は SOCKET 型で、ファイル スコープで宣言されています。SocketList は MUDSocket* の std::list であり、MUDControlSocket は MUDSocket からシングルトンとして派生します。

さらに情報が必要な場合はお知らせください。ご協力いただきありがとうございます。

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

winapi - サーバーに接続する複数のソケット クライアント

アプリケーションがサーバーへの複数のソケット接続 (約 1000 接続) を起動するシミュレーター アプリケーションを設計しています。システムはそれほど多くのクライアントを処理できないため、これらの接続を処理するためにできるだけ多くのスレッドを起動したくありません。Select を使用しても意味がありません。遅い可能性がある 1000 の接続をループする必要があるためです。このシナリオを処理する方法を教えてください。