C LANGUAGE TECHNOLOGY

【C言語】INETドメイン/UNIXドメインソケット通信によるネットワークプログラミング

悩んでいる人

C言語でソケット通信によるネットワークプログラミングを教えて!

こういった悩みにお答えします.

本記事の信頼性

  • リアルタイムシステムの研究歴12年.
  • 東大教員の時に,英語でOSの授業.
  • 2012年9月~2013年8月にアメリカのノースカロライナ大学チャペルヒル校コンピュータサイエンス学部2021年の世界大学学術ランキングで20位)で客員研究員として勤務.C言語でリアルタイムLinuxの研究開発
  • プログラミング歴15年以上,習得している言語: C/C++,Java,Python,Ruby,HTML/CSS/JS/PHP,MATLAB,Assembler (x64,ARM).
  • 東大教員の時に,C++言語で開発した「LLVMコンパイラの拡張」,C言語で開発した独自のリアルタイムOS「Mcube Kernel」GitHubにオープンソースとして公開

こういった私から学べます.

C言語のINETドメイン/UNIXドメインソケット通信によるネットワークプログラミング

本記事では,C言語のINETドメイン/UNIXドメインソケット通信によるネットワークプログラミングを紹介します.

ネットワークプログラミングには,インターネットに接続できるINETドメインソケット通信,高いスループットを持つUNIXドメインソケット通信があります.

INETドメイン,UNIXドメインソケット通信の両方で,TCP(コネクション指向)UDP(コネクションレス)のコードを解説します.

本記事を読むと,C言語のネットワークプログラミングの基礎がわかります.

ネットワークプログラミングでは,クライアントとサーバの2種類のプログラムを実行します.

クライアントはサーバに文字列"Hello World"を送信し,サーバで"Hello World"を表示して終了します.

ソケット通信はsocket関数を呼び出すことから処理が始まります.

他にも上記のsocket関数のリンクの関連項目にある様々な関数を呼び出すので難しく感じるかもしれませんが,慣れるまでの辛抱ですので最後まで読みましょう!

INETドメインソケット通信

C言語のINETドメインソケット通信によるネットワークプログラミングを紹介します.

TCPクライアント/サーバ,UDPクライアント・サーバのコードを解説します.

INETドメインソケット通信のTCPクライアント/サーバ

INETドメインソケット通信のTCPクライアント/サーバのコード一式(Makefileを含む)はこちらからダウンロードできます.

TCPクライアントのコードは以下になります.

TCPサーバのコードは以下になります.

実行方法は以下になります.

まず,ダウンロードしたzipファイルを解凍,作成したディレクトリに移動,makeコマンドでビルドしてクライアントとサーバの実行ファイルの作成を行います.

次に,サーバを実行します.

実行中となり,クライアントからのリクエストを受け付けている状態になります.

別の端末でクライアントを実行します.

「Sending data is successful.」と表示されます.

再度サーバの実行端末を見ると,「Hello World」と表示されていることがわかります.

他のクライアント/サーバも同様に実行できます.

INETドメインソケット通信のUDPクライアント/サーバ

INETドメインソケット通信のUDPクライアント/サーバのコード一式(Makefileを含む)はこちらからダウンロードできます.

UDPクライアントのコードは以下になります.

UDPサーバのコードは以下になります.

実行方法は以下になります.

次に,サーバを実行します.

別の端末でクライアントを実行します.

「Sending data is successful.」と表示されます.

再度サーバの実行端末を見ると,「Hello World」と表示されていることがわかります.

UNIXドメインソケット通信

C言語のINETドメインソケット通信によるネットワークプログラミングを紹介します.

TCPクライアント/サーバ,UDPクライアント・サーバのコードを解説します.

UNIXドメインソケット通信のTCPクライアント/サーバ

UNIXドメインソケット通信のTCPクライアント/サーバのコード一式(Makefileを含む)はこちらからダウンロードできます.

TCPクライアントのコードは以下になります.

TCPサーバのコードは以下になります.

実行方法は以下になります.

次に,サーバを実行します.

別の端末でクライアントを実行します.

「Sending data is successful.」と表示されます.

再度サーバの実行端末を見ると,「Hello World」と表示されていることがわかります.

UNIXドメインソケット通信のUDPクライアント/サーバ

UNIXドメインソケット通信のUDPクライアント/サーバのコード一式(Makefileを含む)はこちらからダウンロードできます.

UDPクライアントのコードは以下になります.

UDPサーバのコードは以下になります.

実行方法は以下になります.

次に,サーバを実行します.

別の端末でクライアントを実行します.

「Sending data is successful.」と表示されます.

再度サーバの実行端末を見ると,「Hello World」と表示されていることがわかります.

まとめ

C言語でINETドメイン/UNIXドメインソケット通信によるネットワークプログラミングを紹介しました.

ネットワークプログラミングのクライアント/サーバのプログラムを実行したり,コードを修正したりして理解を深めましょう!

C言語を独学で習得することは難しいです.

私にC言語の無料相談をしたいあなたは,公式LINE「ChishiroのC言語」の友だち追加をお願い致します.

友だち追加

独学が難しいあなたは,C言語を学べるおすすめのオンラインプログラミングスクール4社で自分に合うスクールを見つけましょう.

-C LANGUAGE, TECHNOLOGY
-, , , , , , , ,