問題タブ [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.
c++ - Connect()、send()、recvをUDPソケットで使用する際の問題
私のUniの割り当てでは、高速アクションペースのネットワークゲームを作成する必要があるため、TCPではなくUDPを使用することを選択しました。私はUDPとTCPの両方のプログラミングにおける多くの違いを認識しており、winsockに関するMSDNのドキュメントの関連部分のほとんどを読み通しました。MSDNでは、connect()関数を介してUDPソケットを作成すると、指定されたアドレスとポートにソケットがバインドされ、その結果、作成されたソケットでsend()関数とrecv()関数を使用できるようになると記載されています。
私のアプリケーションでは、クライアントを作成し、send()関数を介して多数のパケットを送信するループバックアドレスを使用してconnect()を使用します。クライアントは、select()を呼び出した後、送信したパケットを受信します。ただし、recv()関数から取得した結果はSOCKET_ERRORであり、WSAGetLastError()を使用したエラーの説明は「既存の接続がリモートホストによって強制的に閉じられました」です。
bind()関数を使用し、sendto()を使用してループバックアドレスを介してデータを送信すると、エラーなしでパケットをrecv()します... connect()関数が想定どおりに動作しない理由を誰かが知っていますか、そして誰もがconnect()関数でUDPソケットを使用できましたか?
c++ - C++ Winsock API を使用した PNG ファイルのアップロード (HTTP POST)
Winsock2 HTTP Post を介して PNG ファイルをアップロードしようとしています。これが私のリクエスト文字列です:
接続は問題ありません。エラーなどはありません。fileCon
ちなみに からReadFile()
です。そして、エラーコードはありません。読み取られたバイト数は、 の出力と同じですGetFileSize()
。の内容を表示しようとしましたfileCon
が、これだけが得られました:
「エラー」というタイトルは気にしないでください(私が設定しました)。
また、リクエストが完了するまでに時間がかかり、空白の応答が返されます。はい、HTTP ヘッダーのない空白です。私はリクエストを正しく行っていますか?POST データにファイルの内容を含める必要がありますか?
前もって感謝します。
編集: PNG サイズは約 256 KB です。私は1mbps接続しています。
EDIT : 情報が不十分だった場合は申し訳ありません。とにかく、これが私が最近やったことです:
c# - 単純なtcpサーバーのストレステスト時に10060(接続タイムアウト)を取得する
私は単純なtcpサーバーを作成しました-それはかなりうまく機能します。
問題は、ストレステストに切り替えると始まります-サーバーは多数の同時オープンソケットを処理する必要があるため-これをチェックするためにストレステストを作成しました。残念ながら、サーバーが窒息しているように見え、同時に開いているソケットの数が約100の場合、新しい接続要求にタイムリーに応答できません。
すでにいくつかのタイプのサーバーを試しましたが、すべて同じ動作をします。
サーバー:この投稿のサンプルのようなものにすることができます(すべて同じ動作を生成します)
これが私たちが使用しているコードです-クライアントが接続するとき-サーバーはソケットを存続させるためにただハングします。
パブリッククラスサーバー
ストレステストクライアント:単純なtcpクライアントであり、ソケットをループして次々に開きます。
この動作を説明する簡単な方法はありますか?TCPサーバーがより良い結果を生み出すのであれば、おそらくC ++の実装ですか?多分それは実際にはクライアント側の問題ですか?
コメントは大歓迎です!
ofer
c++ - WSAエラーコードのフォーマットされたメッセージを取得する
私はwin32c++アプリケーションでwinsock2を使用しています。WSAGetLastError()を呼び出すことで取得できるネットワークエラーをMessageBoxで表示します。これどうやってするの?FormatMessageを見ましたが、使い方がわかりませんでした
c++ - C++ Winsock - accept()
私は C++ で Winsock を学ぶために結び始めましたが、いくつか問題があります。MSDN の Winsock Example (基本的なクライアント サーバー) に従うことから始めました。 http://msdn.microsoft.com/en-us/library/ms738545(v=vs.85).aspx
コードをビルドして実行すると、次の出力が得られます。
クライアント.exe
14 バイトが送信されました。
接続が閉じられました。
サーバー.exe
Server.exe コマンド ウィンドウで何も起こりません。何が間違っているのかわかりません。私は Winsock を初めて使用しますが、Server.cpp ファイルで tell を呼び出す限り、accept() 関数は決して戻りません。
ヘルプ/ポインタをいただければ幸いです。
前もってありがとう、トム。
EDITコードは上記の MSDN リンクにあります。クライアントとサーバーのコードのページを下にスクロールします。
c++ - getaddrinfo() へのすべての呼び出しで 11001 が返される
ネットワーク上のデバイスへの接続に問題があります。getaddrinfo() を呼び出すたびに、11001 が返されます。IP_ADDRESS 文字列 (Global Var) 内の多数の異なる IP でこれを確認しました。nslookup ですべての非稼働番号を確認しましたが、ほとんどがそこに存在します。
getaddrinfo-returns-always-11001-host-not-found も同様の質問をしているようですが、そこには答えがありません。
現時点では、私のコードはリモート デバイスに接続しようとしてもおらず、IP を解決しようとしているだけです。それが機能したら、より大きくて厄介な問題に進むことができます。
実装:
このコードのほとんどは、msdn の Web サイトからロックとストックを取得したものですが、すべて問題ないように見えます。
c++ - クライアントからソケットを受信していません
しかし、ゲームクライアントからソケットを受け入れているのに何も受信していないのに、何も起こらなかったのはなぜですか!!?
ip - 複数のソケットはデータを「複製」しますか?
私が取り組んでいるアプリケーションは、別のアプリケーションの接続を追跡する必要があります。つまり、他のアプリケーションがIPトラフィックを生成および受信していることを確認する必要があります。
他のアプリケーションへのAPIがないため、WinSockを介してIPトラフィックを追跡しています。これを行うには、RAW IPソケットを定義し、IOコントロールを-と同等のもので設定します。
次に、ソケットから非同期でデータを読み取り、IPヘッダーを調べて、トラフィックが追跡対象のアプリケーションに属していることを確認します。
2つの質問が発生します-
- IPトラフィックを追跡する別のより良い方法はありますか?具体的には、どのホストがマシンにデータを送信し、どのホストにデータがいつ送信されたかを知る必要があります。
- 上記の方法を使用すると、データはターゲットアプリケーションから「盗まれ」ますか?または、ターゲットアプリケーションは中断することなくソケットにそれを取得しますか?
ありがとう、
アサフ
c++ - プロセスのIOをWindowsソケットにリダイレクトします
私はwinsockを初めて使用します。新しい接続を受け入れるサーバーソケットを作成しようとしましたが、外部の実行可能ファイルを呼び出します。外部実行可能ファイルのstdinとstdoutを、受け入れられたクライアントソケットにリダイレクトするにはどうすればよいですか。グーグルで以下のコードを見つけましたが、機能しません。新しいプロセスは正常に作成されましたが、クライアントは新しいプロセスからデータを受信できませんでした。Windows7とVisualStudio2008Expressエディションを使用しています。ヘルプやコメントをいただければ幸いです。どうもありがとうございます!
サーバー
クライアント
外部プログラムhello.cpp
c - WinSockで非同期ソケットを処理しますか?
メッセージウィンドウとWSAAsyncSelectを使用しています。1つのメッセージウィンドウで複数のソケット(クライアント)を追跡するにはどうすればよいですか?