ソケットCとは
「ソケットC」は、Cプログラミング言語でソケットコードを記述するプロセスを指すために時々使用される用語であり、一部のソケット関数の実装を保持する実際のライブラリファイルを指すために使用される場合があります。 実際のソケットCライブラリファイルには、言語ライブラリが提供する基本的なソケット機能を提供するさまざまな関数とマクロの実装が含まれていますが、ソケットCファイルはオペレーティングシステムに依存しており、一部のシステムでは実装されない場合があります。 ソケットCコードの作成には、ソケットと呼ばれる標準の入出力プロトコルを使用したインターフェイスの作成と、それを使用した、通常はネットワークまたはハードウェアを介した情報の送受信が含まれます。 Cプログラミング言語は移植可能であることを目的としていますが、ソケットプログラミングは低レベルのシステム固有の機能に依存しているため、ソケットを使用するだけでなくシステム間の移植性を維持するプログラムをCで作成するのが難しい場合があります
ソケットCがサポートするソケットには、3つの基本的なタイプがあります。 1つ目はデータグラム、2つ目はストリーム、3つ目は生アクセスです。 データグラムは、パケットと呼ばれる小さなバンドルで情報を送信するソケットの一種です。 各パケットは、ネットワーク経由でシークしている宛先ソケットに関する情報とともにソースから送信されます。 データグラムは、ソケットを介した効率的な通信方法であり、電子メールの送信によく使用されますが、送信されるパケットが宛先ソケットに到着することが保証されていないため、損失も大きくなります。
ストリームソケットは別のソケットに接続し、情報はソケット間で直接渡されます。 ソケットCプログラミングで使用する場合、このタイプのソケットは、送信されるすべてのデータが反対側で受信されることを保証します。 ただし、1つの問題は、ソケットがブロッキングを使用できる場合があることです。つまり、スレッドは、情報を受信するか、ソケットが閉じるまでプロセスの実行を停止しますが、ほとんどの場合、スレッドまたは分岐プロセスを使用してこの問題を解決できます。 rawソケットアクセスは、ソケットをホストしているデバイスとほぼハードウェアレベルで実際にインターフェイスする手段として提供されます。
ソケットは通常、インターネット通信のさまざまな形式で使用されます。 ネットワーキングを可能にするハードウェアとドライバーはオペレーティングシステムによって大きく異なるため、考えられるすべての組み合わせをサポートするソケットCライブラリファイルを見つけることは困難です。 このため、ソケットCファイル自体とソケットヘッダーファイルには、多くの場合、条件付きコンパイルディレクティブの長いリストが含まれているため、さまざまなシステムで異なるコンパイルが行われます。