新しい人は、win32 でのソケット プログラミングについて学びたいと思っています。私はMFCについて少し知っていますが、プログラマーから内部の詳細を隠すだけなので、それは始めるのに良いポイントではありません.
8 に答える
Beejのガイドはかなり一般的な出発点です。私がこのようなものを始めてから数年が経ちましたが、iirc、ガイドはバークレーソケットを使用し、必要に応じてwinsockとの違いを指摘しています。
winsock 関数 (Winsock2.h) を使用します。
私は心から ChrisW に同意し、MFC を引き継いでくれたことを心から感謝します。
多くの優れた WinSock 情報については、MSDN Winsock リファレンスを参照してください。
また、学習するには大きすぎるかもしれませんが、非常に優れたソケット サーバー クラスと思われるものがあります。役に立つものがあれば教えてください。
MFC が一部の詳細を不明瞭にするのは正しいことですが、なぜそれをラップすることにしたのかわかりません。
WinSock プログラミングに関する優れた書籍やチュートリアルが多数あります。これが1つです。
答えは、win32 ソケット API を使用することです。
この API に関する情報は MSDN にあります。
これ (いわゆる「Winsock」API) は Unix/Posix API (に基づく) に似ているため、MSDN だけでなく、Unix でのソケットの使用に関する多くの文献 (本) も関連しています。
おそらく、グーグルでコードサンプルを見つけることができます。
たとえば、「IP アドレス」や「ポート」とは何かなど、ネットワークについて少し知っておく必要があります。
プロトコル (UDP または TCP) を選択する必要があります。
Win32 の違いの 1 つは、ソケットが接続されている場合に ReadFile と WriteFile を使用できることです。つまり、ReadFile と WriteFile に関連付けられているオーバーラップ I/O のオプションを使用できます。
2 つのオプション:
- シリアル ポートと通信するファイル ストリーム ベースのコードを記述します。
- シリアル ポート通信に C++ ライブラリを使用する (これについては google)
最初のオプションは、「ボイラープレート」コードを記述することを意味するため、そのためにサードパーティのライブラリを使用することをお勧めします。
シリアル ポート プログラミングで最も一般的な「起動時のトラブル」は、デバイスとの通信リンクを確立することです。ポート名、ボーレート、パリティなどを正しく設定する必要があります (通常はデバイスの製造元によって指定されます)。
次に、デバイスの「コマンド セット」もあります。たとえば、「?」を送信するとします。デバイスに送信すると、メーカー名などのデバイス情報が返されます (「?」コマンドは例であり、標準ではありません。コマンド セットはデバイスによって異なります)。
すべてのシリアル通信は次のように機能します。 - シリアル ポートにコマンドを書き込みます - デバイスからの応答のために読み取りバッファをポーリングします
私の知る限り、C++ または MFC には組み込みのシリアル ポート通信クラスはありませんが、このためのサード パーティ ライブラリが多数あります。