リスナー【listener】リスナ
概要

英語の “listener” は「聴取者」「聞き手」を意味する語で、一般語としてはラジオ番組の聴取者を指す用法が広く知られている。IT分野では、信号や入力を「聞き取る(検知する)もの」という意味合いで用いられる。
プログラミング分野では、システム内で発生した具体的な出来事(イベント)を監視し、条件に合致した際にあらかじめ登録された処理を自動的に呼び出す関数やメソッドを「イベントリスナー」(event listener)、または単にリスナーという。オブジェクト指向言語では、特定のイベントを検知して動作するよう定義されたオブジェクト全体を指す場合もある。
例えば、Webページ上のボタンがクリックされたとき、キーボードのキーが押されたとき、画面のサイズが変化したときなど、それぞれのイベントに対応したリスナーをあらかじめ登録しておくことで、イベントの発生に応じた処理が自動的に実行される。この仕組みはデスクトップアプリケーションからモバイルアプリ、Webページ上のスクリプトなど、様々な環境で利用されている。
ネットワーク通信の分野では、サーバなどのコンピュータ上で常時稼働し、外部のクライアントからの接続要求やデータ送信を待ち受けるプログラムを「リスナー」と呼ぶことがある。一般的にはソケット通信機能を使い、TCPまたはUDPの特定のポート番号でオペレーティングシステム(OS)のIPネットワーク機能に待機を登録する。
そのポート番号宛てにパケットが届くと、OSは待機中のリスナーにデータを引き渡し、通信処理が開始される。TCPの場合、接続要求を受信すると新たな通信ソケットを生成して個々の通信を処理し、元のリスナーは引き続き新たな要求を待ち受ける。Webサーバやメールサーバ、データベース管理システムなどは、こうしたリスナーを内部に持つことで、複数の利用者からの接続を継続的に受け付けることができる。