int socket_release( int socket, object ob, string release_callback );
整數 socket_release( 整數 socket, 物件 ob, 字串 release_callback );
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) 等的錯誤碼也可能傳回。