Inflearn brand logo image
Inflearn brand logo image
BEST
Security & Network

/

System

Windowsソケットプログラミング入門から高性能サーバーまで!

このレッスンでは、アプリケーションレベルのプロトコル設計技術とIOCPベースの高性能サーバー開発方法を学ぶことができます。

Socket.io
iocp
tcpip
udp

こんなことが学べます

  • WindowsベースのTCPソケットプログラミング技術

  • マルチスレッドサーバー作成技術

  • IOCPベースの高性能サーバー作成技術

  • アプリケーションレベルのプロトコル設計手法

レベルの高いプログラマーに飛躍したいですか?
Windowsソケットプログラミングに挑戦!

C/C++ 高性能サーバー構築、
終わりはいつもIOCPです!

Windows環境でTCP / IPソケットプログラムを開発する方法を学びます。最初のソケットを扱う入門理論をはじめ、IOCP (I/O Completion Port)を扱う方法やアプリケーションレベルのプロトコル設計手法まで取り上げます。

C / C ++シリーズの開発者が知っておくべき知識として、高性能サーバーは欠けていないトピックです。そしてその終わりには常にIOCPがあります。実際、IOCPは難しいトピックではありません!オペレーティングシステムのある程度の理解(特に仮想メモリ)があり、スレッドを扱うことを知っている人なら誰でも学ぶことができます。言い換えれば、基礎理論の理解がしっかりしていれば簡単に理解できます。

そしてソケットプログラミングを扱うほとんどの書籍やレッスンはチャットサービスをカバーしています。その過程でいくつかの誤った概念が生まれます。残念ながら、その問題はソケットを理解するのを妨げる要素として機能するだけでなく、プロトコル設計を正しくすることができない原因にもなります。


ソケットプログラミング用
コアソリューションをお知らせします。

1️⃣ TCPソケットプログラミング基礎理論

2️⃣アプリケーションプロトコル設計技術

3️⃣障害状況を考慮したサーバー開発方法

4️⃣ IOCPベースのサーバー開発方法

このレッスンでは、これらの問題を解決するためにソケットプログラミングの入門段階で遭遇する可能性がある問題を含む、正しい解決策と学習の方向性を提示します。何よりWiresharkを利用してパケットを直接確認し、自分が知っている各種理論とコードレベルの状況を連携して理解できます。さらに、障害問題に対応できる方法まで学習することで、高性能サーバーを開発できる基盤を確保することができます。


あなたはあなたの悩みではありませんか?

高性能が要求されるサーバーを開発しなければならないC/C++系開発者のための講義です!

Case 1ソケットプログラミングをしたいのですが、OSI 7 Layerから詰まっています。

ソケットプログラミングを勉強する前に、必ずしもOSI 7レイヤーを勉強する必要はありません。もちろん、知っていれば役に立つのが事実ですが、必須というのは難しいです。ただし、TCPプロトコルについて一度でも勉強をした後に始めることをお勧めします。

Case 2ソケットプログラミングを学びたいのですが、難しいです。システムプログラミングをする必要がありますか?

システムプログラミングを既に知っている人なら、TCPの勉強だけが一生懸命働くことで、ソケットプログラミングを簡単に終わらせることができます。それだけシステムプログラミングの理解は重要です。しかし、複雑なものすべてを知る必要はなく、マルチスレッドと同期方法だけを知っていても、学習に問題はありません。

Case 3 IOCPサーバーが高性能であることはわかりますが、勉強するのは難しいです。

多くの人がIOCPが難しいと思います。これは、内部フローが目に見えず、非同期ファイル入出力技術の間にCallback構造を使用する方法について経験が不足しているためです。ソケットの本質がファイルであるだけに、非同期入出力技術をきちんと学べば、簡単にIOCPも理解できます。本講義では、そのような問題に対応できるようにカリキュラムを構成しました。

Case 4 Client / Server構造を使用していますが、適用されたプロトコルが適切かどうか、このようにコードを書くのが正しいかどうかわかりません。

プロトコル設計という言葉から、多くの方がジレを怖がっています。しかし、知っていれば星ではないという考えをするようになります。特にソング/受信構造をコードレベルで経験してみるとさらにそうです。

Case 5ゲームサーバー開発者になりたいです。何を勉強すればいいですか?

ゲームサーバーは高性能、高可用性が必須です。 TCP / IPプロトコルの深い理解、システムプログラミング能力、およびプロトコル設計能力が特に重要です。 IOCPのような高速入出力技術を知ることは必須と言います。


学習内容
確認してみてください。

  • TCP/IP ソケットプログラムを作成できます。
  • ✅ICOPベースの高性能C / C ++サーバーを作成できます。
  • アプリケーションレベルのプロトコル設計と関連コードを書く方法を知ることができます。
  • 私が作成したアプリケーションを操作する際に発生する可能性のある障害状況を分析して対応できます。
  1. TCPソケットプログラミング基礎理論
  2. TCPエコサーバー(マルチスレッドベース)
  3. TCPチャットサーバー(マルチスレッド、I / Oマルチプレックス、イベント選択、IOCP)
  1. ファイルソング/受信技術と障害対応
  2. アプリケーションレベルのプロトコル設計、コード記述技術
  3. 非同期入出力原理とIOCP
  4. UDPソケットプログラミング技術

選手の知識とおすすめ受講コース

この講義を学習するには、以下の講義カリキュラムで取り上げる内容の理解が必要です。

💾受講前に確認してください。

  • 練習にはWindows 10以降のオペレーティングシステムが必要です。 (LinuxとmacOSでは実践できません。)
  • 練習にはVisual Studio 2022 Communityバージョンを使用し、Visual Studioを実行できるレベルのPC仕様が必要です。 (MFC、Windows SDKを含む)
  • レッスンで使用された帳票PDFファイルとクラス別の例を提供します。

こんな方に
おすすめです!

学習対象は
誰でしょう?

  • TCP/IPソケットプログラミングを学びたい方

  • Client/Server構造プロトコル設計手法を知りたい方

  • 非同期ファイルの入出力を理解したい方

  • 非同期入出力が高い性能が出せる理由を知りたい方

  • IOCPベースの高性能サーバーを開発したい方

  • ゲームサーバー開発者を希望する方

前提知識、
必要でしょうか?

  • 講義「毒によみがえるCプログラミング」に該当する内容

  • 講義「覚えて終わるネットワークコア理論 - 基礎」に該当する内容

こんにちは
です。

34,826

受講生

1,922

受講レビュー

1,062

回答

4.9

講座評価

22

講座

널널한 개발자 TV 채널 주인장이자
30년 넘게 IT기술의 바다를 항해하고 있는 개발자 입니다.  반갑습니다. ^^

 

カリキュラム

全体

47件 ∙ (9時間 37分)

講義資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

全体

40件

5.0

40件の受講レビュー

  • jonguk.yoo님의 프로필 이미지
    jonguk.yoo

    受講レビュー 3

    平均評価 5.0

    5

    32% 受講後に作成

    • 널널한 개발자
      知識共有者

      좋은 평가 고맙습니다.

  • Jin님의 프로필 이미지
    Jin

    受講レビュー 3

    平均評価 5.0

    5

    32% 受講後に作成

  • 김태준님의 프로필 이미지
    김태준

    受講レビュー 1

    平均評価 5.0

    5

    34% 受講後に作成

  • 조우진님의 프로필 이미지
    조우진

    受講レビュー 1

    平均評価 5.0

    5

    32% 受講後に作成

  • Jimen님의 프로필 이미지
    Jimen

    受講レビュー 5

    平均評価 4.8

    5

    32% 受講後に作成

nullnull8537の他の講座

知識共有者の他の講座を見てみましょう!