TCP / IP ソケットプログラミング (C 言語編)(ティーシーピー アイピー ソケット プログラミング)
ネットワーク- 著者:
- マイケル・J.ドナフー/ケネス・L.カルヴァート(ドナフー,マイケル・J./カルヴァート,ケネス・L.)
- 出版社:
- オーム社
- 出版日:
- 2003年05月
- ISBN:
- 9784274065194
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
第 1 章から第 4 章では、シンプルなクライアント/サーバの構築を目指します。ここでの経験は課題に取り組むのに役立つはずです。第 5 章では、ソケットのさまざまな利用方法を紹介します。第 6 章では、ソケット操作の基本に立ち返り、隠れたメカニズムを取り上げ、気をつけなければいけない点などを詳しく説明します。第 7 章では、ドメイン名から IP アドレスを取得する、いわゆる名前解決について解説します。
技書の森解説
ネットワーク越しにデータを送受信するプログラムを C 言語で書きたいとき、避けて通れないのがソケット API です。本書は Michael J. Donahoo と Kenneth L. Calvert による "TCP/IP Sockets in C: Practical Guide for Programmers" の翻訳で、 TCP と UDP のソケットを使った通信プログラムを最小限のコードで動かしながら学ぶ構成をとっています。
特徴はコンパクトさです。大部なネットワーク教科書のようにプロトコル階層を網羅するのではなく、「クライアントとサーバーを書いて動かす」ことにフォーカスを絞っています。 socket () 、 bind () 、 listen () 、 accept () という一連の API 呼び出しを具体的なサンプルコードで追えるため、 C のポインタ操作とバイトオーダーの扱いに慣れている人であれば短期間で通読できます。大学の演習課題の副読本として使われることも多い一冊です。
その反面、ネットワークの理論的背景やマルチスレッド/非同期 I/O による大規模サーバー設計には深く踏み込みません。本書で基本の通信パターンを身につけた後、 Stevens の『 UNIX ネットワークプログラミング』のような網羅的リファレンスへ進むと、段階的に知識を積み上げられます。
言及 Qiita 記事 (10 件)
C言語で学ぶソケットAPI入門 第1回 サーバ編
♡ 236C, Linux, Network, TCP, ソケット新卒から2年間で読んだお勧め本
♡ 51Java, Ruby, Python, C, DockerC言語で学ぶソケットAPI入門 第3回 TCPサーバ/クライアント編 #1
♡ 30C, Linux, Network, TCP, ソケットC言語で学ぶソケットAPI入門 第2回 クライアント編
♡ 26C, Linux, Network, TCP, ソケットC言語で学ぶソケットAPI入門 第4回 UDPサーバ/クライアント編 #1
♡ 23C, Linux, Network, TCP, ソケット某電子公告的なTelnetサーバーをC言語で作る
♡ 8C, telnet, ソケットプログラミングF#でソケットプログラミング入門
♡ 4F#, F#AdventCalendar「I/O多重化(システムコールpoll();を使用)」を施したサーバを作成してみた。
♡ 1C++, 多重化, ソケットプログラミング, 42tokyo簡単なエコーサーバーを作成してみた。
♡ 0C++, ソケットプログラミング, 42tokyoノンブロッキングI/Oについて調べてみた
♡ 0C, ソケットプログラミング, ノンブロッキング, 42tokyo
この本に興味がある方におすすめ
この本に関連
関連記事
インフラ / クラウド本ガイド - AWS や Docker を本で学ぶ
クラウドインフラ、コンテナ、IaC を学べる技術書の選び方と学習順序を紹介。インフラ本の賞味期限問題と公式ドキュメントとの使い分けも解説します。
Python 本の選び方 - 独学の最初の 1 冊から実務品質まで
Python 本の選び方を「動機」から逆算して整理。プログラミング未経験の最初の 1 冊、業務自動化に直結する本、型ヒントとコード品質で実務水準へ進む本まで、2026 年 8 月時点の定番を独学ルートに沿って解説します。
技術書のアウトプット術 - 読んだ本の価値を 10 倍にする方法
技術書を読んだ後のアウトプット方法を負担の少ないものから 5 段階で紹介。アウトプットが記憶の定着を劇的に改善する理由も解説します。
関連用語
プログラミング
コンピュータに実行させる手順をプログラミング言語で記述し、動作を作り出す行為
Ruby
開発者の生産性と楽しさを重視した、日本発のオブジェクト指向プログラミング言語
リバースプロキシ
クライアントとサーバーの間に位置し、リクエストを中継 / 制御するサーバー
Server Components
React 19 のサーバーで実行されるコンポーネントで、JS バンドルサイズを削減しパフォーマンスを向上させる
BFF (Backend for Frontend)
フロントエンドごとに専用のバックエンドを用意し、クライアントに最適化された API を提供するパターン
競技プログラミング
与えられた問題を制限時間内に正確 / 高速に解くプログラミング競技