     socket_release(3)      MudOS (5 Sep 1994)       socket_release(3)

     名稱：
          socket_release() - 釋放一個 socket 的所有權(ownership)給另一
                             物件。

     語法：
          #include <socket_err.h>

          int socket_release( int socket, object ob,
                              string release_callback );

          整數 socket_release( 整數 socket, 物件 ob,
                               字串 release_callback );

     用法：
          socket_release() 是用來改變原先處理連接設定(set-up)之物件的
          所有權（和控制權）並且轉移一個已連接(connected)的 socket 給
          另一物件以供未來之用。

          socket 所有權的轉移包括了一個目前擁有所有權物件和這個物件想
          轉移 socket 的物件間的握手程序(handshake)。這個握手程序是由
          呼叫 socket_release() 開始的。socket_release() 經過安全性、
          完整性(integrity)檢查後，再呼叫物件 ob 的 release_callback
          函式。這個函式是用來通知 ob socket 所有權將要轉移給它。然後
          ob 有責任在釋放回呼(callback)函式中呼叫 socket_acquire()。如
          果呼叫了 socket_acquire()，握手程序就完成了，而 socket 所有
          權就已經成功地轉移給 ob。ob 也可以不呼叫 socket_acquire() 而
          婉謝接受這個 socket 的責任，此時，所有權不會改變，而且原來的
          socket 所有者必須決定如何回應這個情況。

          如果 socket 所有者成功地轉移，則 socket_release() 會傳回
          EESUCCESS。如果 ob 不接受這個 socket 的所有權的話，則會傳回
          EESOCKNOTRLSD。其他基於違反安全、錯誤的 socket 描述值(descriptor)
          等的錯誤碼也可能傳回。

     參照：
          socket_acquire(3)

     翻譯：
          Kenny@Broken.History       97.Jul.27       (printed 3/16/95)
