Skip to Content
Java クックブック、第 4 版
book

Java クックブック、第 4 版

by Ian F. Darwin
May 2025
Intermediate to advanced
638 pages
10h 22m
Japanese
O'Reilly Media, Inc.
Content preview from Java クックブック、第 4 版

第12章. ネットワーククライアント

この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com

12.0 はじめに

Javaは、多くの種類のネットワーク・プログラムを書くのに使うことができる。従来のソケットベースのコードでは、プログラマがクライアント、サーバ間のインタラクションを構造化する責任を負う。 TCPソケットコードは、単に送信したデータが相手側に届くことを保証するだけである。 HTTP、RMI、CORBA、EJBなどの高レベルタイプでは、ソフトウェアがより多くのコントロールを引き継ぐ。ソケットはレガシーアプリケーションに接続するためによく使われる。

ソケットと電話システムを比較することは役に立つかもしれない。電話はもともとアナログ音声通信に使われていた。最初に広く普及したのはファクシミリ送信、つまりファックスである。音声電話の普及がなければ、FAXはどうなっていただろう?歴史的に2番目に広く普及したレイヤー・アプリケーションは、ダイヤルアップTCP/IPだった。これはウェブと共存して大衆向けサービスとして普及した。デプロイされた音声行がなかったら、ダイヤルアップIPはどうなっていただろうか?そして、ダイヤルアップIPがなかったらインターネットはどうなっていただろう? ファクスもダイヤルアップも今はほとんどなくなってしまったが、スマートフォンのネットワーク機能への道を開いた。

ソケットもそのように階層化されている。ウェブ、RMI、JDBC、CORBA、EJBはすべて、ソケットの上に階層化されている。 HTTPは現在最も一般的なプロトコルであり、b地点からa地点にデータを取得したいだけの新しいアプリケーションには、一般的にHTTPを使うべきである。

1995年5月にJavaのアルファ版がリリースされて以来(もともとはHotJavaブラウザの副次的なものだった)、Javaはネットワーク・アプリケーションを構築するためのプログラミング言語として人気がある。特にC言語でネットワーク・アプリケーションを構築したことがある人なら、その理由を理解するのは簡単だ。まず、C言語のプログラマは使用するプラットフォームを気にしなければならない。Unixは同期ソケットを使用し、読み取りと書き込みに関して通常のディスクファイルと同じように動作する。一方、Microsoft OSは非同期ソケットを使用し、読み取りや書き込みが完了したときにコールバックを使用して通知する。Javaはこの区別を無視している。さらに、C言語でソケットをセットアップするために必要なコードの量は膨大である。例 12-1は、クライアントソケットをセットアップするための典型的なC言語コードを示している。これはUnixの部分だけである。また、コネクションを作成し閉じる部分だけである。Windowsに移植するためには、条件付きコードを追加する必要がある(Cの#ifdef メカニズムを使用する)。Cの#include メカニズムは、正確に正しいファイルをインクルードする必要があり、いくつかのファイルは特定の順序でリストされなければならない(Javaのimport メカニズムははるかに柔軟である)。

例12-1. main/src/main/java/network/Connect.c (Cクライアントのセットアップ)
#include <sys/types.h> #include <sys/socket.h> #include ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

最新の Java レシピ

最新の Java レシピ

Ken Kousen
Javaによる関数型プログラミング ―Java 8ラムダ式とStream

Javaによる関数型プログラミング ―Java 8ラムダ式とStream

Venkat Subramaniam, 株式会社プログラミングシステム社
MySQL クックブック、第 4 版

MySQL クックブック、第 4 版

Sveta Smirnova, Alkin Tezuysal

Publisher Resources

ISBN: 9798341650336