さて、ここまでに出てきた「ポート番号」とは一体何なのでしょうか。
ためしに、サーバプログラムを起動し、ポート番号を「13580」にしてから「待機」を押し、続いてクライアントプログラムを起動してポート番号が「13579」のまま「接続」を押して接続しようとしてみて下さい。
又は
というエラーが発生し、接続に失敗したと思います。
ポート番号は、窓口番号のようなものです。例えば、あるコンピュータで
というようにいくつものサーバプログラムが稼動していた場合、そのままでは (もしポート番号が割り振られていなければ)、ネットワークを通じて外部から接続しようとしたプログラムがあっても、どのサーバプログラムが応答すれば良いのか、はっきりしません。
そこで、ネットワークを介して他のコンピュータに接続しようとするプログラムは、「どのコンピュータに接続しようとするか」という情報 (210.152.236.113 や www.yahoo.co.jp といった情報) の他に、「どのポートに接続しようとするか」という情報を持って接続することになっています。
(原則として) ポート番号はプロトコル (やりとり手順) の種類 (サービスの種類、と考えても良い) によって決まっています。主なプロトコルのポート番号は以下の通りです。
プロトコル名 | 内容 | ポート番号 |
---|---|---|
SMTP | メール送信 | 25 |
POP3 | メール受信 | 110 |
HTTP | web ページ | 80 |
FTP | ファイル転送 | 21 |
しかし、これらのポート番号は、絶対に守らなければいけないものではなく、世間一般で上記のように割り当てられているものであり、「知り合いにしかアクセスしてほしくないから、ポート番号 80 ではなく 8080 で web サーバを動かそう」というような設定も可能です。また、この章で作った「数あてゲーム」などは、インターネット上でプロトコルが定められていないでしょうから (たとえあったとしてもこの章のプログラムはそれに準拠していないので) 適当なポート番号を割り当てても構いません。ただし、他の有名なプロトコルと同じポート番号は避ける方がいいでしょう。1023までは特に多いので使用を避けた方が無難です。また、ポート番号の上限は65535です。