2009-03-23 11 views
1

Windowsプラットフォームでソケットを使用する最も良い方法は何ですか?Windows環境でのC/C++とのネットワーク

基本ソケット私は、TCP/IPと思う。 多分チャットクライアントのために、または学習のためだけに。

誰かが私にWININETの使用例を教えてもらえますか?

多分ftpgetfile()

答えて

2

非常に広範な問題であり、あなたのニーズに多くを依存していること。

どの程度のレベルが必要ですか? HTTP/FTP?自分のプロトコルの "ちょうどソケット"ですか?どんな種類のパフォーマンスが必要ですか(接続量、予想速度)?

生APIを使用する場合は、「数個の」同時接続よりパフォーマンスが悪いため、通常はWSAAsyncSelectから離れてください。ブロッキングソケットとソケットごとのスレッドはあまりにも熱くありません。 WSAEventSelectはややこしいですが、仕事をうまくやってくれます(μtorrentはロットの並行接続をこの方法で処理します)。本当に高負荷のファンシーは、I/O完了ポートです。あなたは、移植性の点でブーストASIOを検討することもできます。

HTTP/FTPなどの標準プロトコルを使用する場合は、libcurlをチェックします。または、少ないニーズと少ないオーバーヘッドのために、標準のWindows WININET機能(ただし、多くの制限があります)。


WinInet関数を使用するために、hereを起動してみてください - サンプルではないかもしれませんが、少なくともあなたのためにGoogleに十分なもの与え、あるべきTCP/UDPのWinsockの基本的なクライアント・サーバ・アプリケーションの場合)

0

ウィンドウ上の非同期I/Oモデルを意味しますか? WSAAsyncSelect、WSAEventSelect、オーバーラップI/O、I/O完了ポートがあり、クロスプラットフォームであるLibeventとBoost Asioを使用することもできます。

0

のWinInetあなたは、MSDNまたはcodeproject.con

つの方法あなたが素敵なplatofrmは独立のlibに見つけることができる使用することで見つけることができる例は - 後押し:: ASIO

0

を使用すると、学習経験としてこれを使用するために探している場合私はACEも見ています。 Patterns for Concurrent Network and Networked Objectsで説明されている多くのパターンを実装するC++クロスプラットフォームフレームワークです。著者はACEにも書いている(here参照)。

関連する問題