専門学校で行っている講義のプログラミングパートをここで公開(メモ代わり)します。
ソケットを使ったネットワークプログラミングをしようというものです。
ここでは、 Windows/Linux上で動作するIPv4/IPv6対応のプログラムを作成します。

動作確認環境
Windows
 Windows10、VisualStudio2017で動作を確認してます。
Linux
 CentOS 7.6とRaspberryPi(Raspbian GNU/Linux 8 (jessie))で動作を確認しています。

ここで使用している開発環境
VisualStudio2017
 Windowsのプログラム
  C++を使ったコンソールアプリを作成します。
 Linuxのプログラム
  Visual C++ for Linuxを使用してWindowsアプリと比較しながら作成します。
  makefileを使用しますので、Linux側でビルドすることもできます

  その他のツール
 WireShark(パケットモニタリングツール)
 TeraTerm(SSHによるリーモートログイン)
 WinSCP(SSHによるファイル転送)
 KanjiTranslator(漢字コード変換)

Visual Studio側
Visual Studio installersを使ってLinux開発環境(C++)をインストールします
 詳細->変更
  「C++によるLinux開発」をインストールします
(*)VisualStudioを使わずにLinuxの開発を行う場合は不要です

Linux側準備
 VisualStudioを使ってリモートデバッグを行うことができますので
 g++、gdb、gdbserverのインストールします

 RaspberryPi
  sudo apt-get install g++
   sudo apt-get install gdb
  sudo apt-get install gdbserver

 CentOSの時
  sudo yum install gcc-c++
  sudo yum install gdb
  sudo yum install gdb-gdbserver