ソケットは、同じマシンまたは異なるマシン上の2つの異なるプロセス間の通信を可能にします。 より正確には、標準のUnixファイル記述子を使用して他のコンピュータと通信する方法です。 Unixでは、すべてのI/Oアクションは、ファイル記述子を書き込むか読み取ることによって行われます。 ファイル記述子は、開いているファイルに関連付けられた単なる整数であり、ネットワーク接続、テキストファイル、端末、または他のものにすることがで
プログラマにとって、ソケットは低レベルのファイル記述子のように見え、動作します。 これは、read()やwrite()などのコマンドが、ファイルやパイプと同じようにソケットで動作するためです。
ソケットは2.1BSDで最初に導入され、その後4.2BSDで現在の形式に洗練されました。 ソケット機能は、最新のUNIXシステムリリースで使用できるようになりました。
ソケットはどこで使用されていますか?
Unixソケットは、クライアント-サーバー-アプリケーション-フレームワークで使用されます。 サーバーは、クライアントからの要求に応じていくつかの機能を実行するプロセスです。 FTP、SMTP、POP3などのアプリケーションレベルのプロトコルのほとんどは、ソケットを使用してクライアントとサーバー間の接続を確立し、データを交換します。
ソケットタイプ
ユーザーが利用できるソケットには四つのタイプがあります。 最初の2つが最も一般的に使用され、最後の2つはめったに使用されません。
プロセスは同じタイプのソケット間でのみ通信すると推定されますが、異なるタイプのソケット間の通信を妨げる制限はありません。
-
Stream Sockets-ネットワーク環境での配信が保証されています。 ストリームソケットを介して3つの項目”A、B、C”を送信すると、それらは同じ順序で到着します−”A、B、C”。 これらのソケットは、データ伝送にTCP(Transmission Control Protocol)を使用します。 配信が不可能な場合、送信者はエラーインジケータを受け取ります。 データレコードには境界はありません。
-
データグラムソケット-ネットワーク環境での配信は保証されません。 ストリームソケットのように開いている接続を持つ必要がないため、接続がありません−宛先情報を含むパケットを作成して送信します。 彼らはUDP(User Datagram Protocol)を使用します。
-
Rawソケット-これらは、ソケットの抽象化をサポートする基礎となる通信プロトコルへのアクセスをユーザーに提供します。 これらのソケットは通常データグラム指向ですが、その正確な特性はプロトコルによって提供されるインターフェイスに依存します。 Rawソケットは一般ユーザーを対象としていません; 彼らは主に新しい通信プロトコルの開発に興味のある人のために、または既存のプロトコルのより不可解な施設のいくつかへのアクセスを得るた
-
シーケンスされたパケットソケット−レコード境界が保持されることを除いて、ストリームソケットに似ています。 このインタフェースは、ネットワークシステム(NS)ソケット抽象化の一部としてのみ提供され、ほとんどの深刻なNSアプリケーションでは非常に重要です。 Sequenced-packetソケットを使用すると、送信されるデータと共にプロトタイプヘッダーを書き込むか、すべての送信データで使用するデフォルトヘッダーを指定することで、パケットまたはパケットのグループ上のSequence Packet Protocol(SPP)またはInternet Datagram Protocol(IDP)ヘッダーを操作できます。
次は何ですか?
次のいくつかの章では、socketを使用してサーバーとクライアントプログラムを書く前に、基本を強化し、基礎を準備することを目的としています。 クライアントとサーバーのプログラムの記述方法を直接確認したい場合は、そうすることができますが、推奨されません。 プログラミングをするために動く前にあなたの基盤を作るために段階的に行き、これらの最初の少数の章を完了することが強く推薦される。