ISBN 9784274223242
PythonによるTCP/IPソケットプログラミング
概要
TCP/IPの原理からPythonでソケット実装する力を体系的に身につける
想定読者
Pythonの基本文法は習得済みで、ネットワークプログラミングの実装方法を一から学びたい学生や初中級エンジニア
こんな人には向いていない
- ソケット通信の経験がすでにあり、より高度なスケール設計や非同期フレームワーク(asyncio/aiohttp等)の深掘りを求める読者には内容が基礎寄りすぎる
- TCP/IP以外のプロトコル(QUIC、WebSocket、gRPCなど)を扱いたい読者は対象外
- PythonそのものをゼロGから学ぶ段階の読者には、言語基礎の解説が省かれているため前提習得が先になる
読了後にできるようになること
- OSI参照モデルとTCP/IP階層の関係を説明できる
- PythonのsocketモジュールでTCPクライアント・サーバを実装できる
- マルチスレッドを用いた並行接続サーバを構築できる
- UDPを使ったチャットシステムなど軽量通信アプリを実装できる
- HTTPの仕組みを理解し、PythonモジュールでWebサーバ・クライアントを組み立てられる
- サンプルコードを動かしながら、プロトコルの挙動を実測して検証できる
本書のキー概念(章解説)
- 第 1 章 TCP/IPとソケットの基礎 — OSI・IP・TCP/UDPの概念整理。ネットワーク知識が薄い読者はここを丁寧に読むことで後半の実装理解が早まる
- 第 2 章 Pythonによるソケットプログラミング — クライアント・サーバの基本実装とマルチスレッド対応。本書のコア章。サンプルを手元で動かしながら読む価値が最も高い
- 第 3 章 ネットワークシステムの実践 — TCPによるデータロギングとUDPチャットシステムの構築。プロトコル選択の判断軸を実装で体得できる
- 第 4 章 Webシステムの構築 — HTTPの仕組みとPythonモジュールを使ったWebサーバ・クライアント実装。ソケットとHTTPを接続して理解する橋渡し章
ハイライト
- TCP/IPやソケットの原理を説明したのち、Pythonでソケットを実装する基礎的方法を示していきます。さらに、Python固有の機能を用いたプログラミング例を紹介します。(原理の説明から実装まで一冊で完結させる本書の構成方針が端的に表れている)
編集メモ
Qiita言及記事0件、楽天ランキング履歴なし。外部シグナルが確認できないため supplementary。2019年2月刊行で比較的旧刊だが、オーム社刊の入門書として安定した構成を持つ
読む前に押さえておきたいこと
- Pythonの基本文法(変数、関数、クラス、モジュールのimport)を一通り習得していること
- コマンドライン/ターミナルでPythonスクリプトを実行できる環境が手元にあること
- ネットワークに関する予備知識は不要だが、IPアドレスとポートの概念を薄く知っていると第1章の吸収が早い
学習のコツ
- 第2章のサンプルコードは必ず手元の環境で動かすこと。読むだけでは動作イメージが掴みにくく、実行して挙動を観察することで定着が大きく変わる
- TCP(第3章)とUDP(第3章チャット)を両方実装してみると、プロトコル選択の感覚が身につく。どちらか一方だけでは比較軸が欠ける
- 第4章のWebサーバ構築まで通読することで、ブラウザとサーバのやりとりがソケットレベルで見えるようになる。HTTP理解の入り口としても有効
- 既存のネットワーク知識がある読者は第1章を流し読みし、第2章から実装主体で進めると時間効率がよい
出版社による内容紹介
Pythonによるネットワークプログラミング入門書! 本書は、Pythonによる実装を前提として、ソケットプログラミングに必要な知識をわかりやすく解説する入門書です。TCP/IPやソケットの原理を説明したのち、Pythonでソケットを実装する基礎的方法を示していきます。さらに、Python固有の機能を用いたプログラミング例(モジュールを利用したサーバ実装など)を紹介します。 ダウンロードできるサンプルプログラムが多数掲載されているので、実際に試しながら読み進めて、知識と技術を身につけてください。
この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。