(2011/12/24 追記) 旧ブログから記事を移行しています。
帰るまで電車の中で本を開けないので、まず接続されるまでの順序を書こう。
まずはsocket関数を使用してソケットを開いて、bind関数でソケット名を決める。そのあとサーバ側でlisten関数からクライアント側へ接続を確立したいことを告げて。connect関数を使いクライアント側は返答します。接続を確立した事を確認したaccept関数を返してやり、これでsend関数とrecv関数を使いデータ送受信に移ります。
プログラムがソケットを使用し終わるとclosesocket関数を用いて、ソケット・デスクリプタに結合されていた状態情報を解放して、ソケットを解放します。クローズ後のソケット・デスクリプタに対しては、どんか関数も実行してはならない。
以上。意外と面倒臭い。