Show page source of internal22-240-ソケットの作成 #25586

[[PageNavi(internal22-navi)]]

{{{ comment
h2w-title:ソケットの作成
}}}
 

= ソケットの作成 = #SECTION07210000000000000000

新規ソケットの作成はsys_socket関数にて行う。引数で指定されたプロトコロルファミリーのタイプで、SS_UNCONNECTED状態のソケットを生成する。

sys_socket関数は、まずsock_create関数を呼び出す。socket構造体を確保(sock_alloc)した後、引数のプロトコルファミリー番号でnet_familiesテーブルを検索し、目的のプロトコルの初期化関数を呼び出し、ソケットを初期化する。各プロトコルの初期化関数中で、それぞれのプロトコル固有のソケット操作関数テーブル(struct proto_ops)の登録も行われる。また、必要があればsock構造体も確保(sk_alloc関数)初期化され登録される。

sock_create関数の処理が完了すると、file構造体を確保初期化し、ファイルとしてファイルディスクリプタテーブルに登録する(get_fd関数)。ファイル操作関数テーブルとしてはsocket_file_opsを登録する。

全ての処理が完了すると、先に「'''ソケットデータ形式'''」で説明したソケットデータ構造が出来上がる。

 [[Embed(internal22-images:img81.gif)]]
 

----

''(NIS)HirokazuTakahashi [[BR]]2000年06月11日 (日) 22時29分57秒 JST''1

[[PageNavi(internal22-navi)]]