     socket_create(3)       MudOS (5 Sep 1994)        socket_create(3)

     名稱：
          socket_create() - 建立一個 efun socket

     語法：
          #include <socket_err.h>

          int socket_create( int mode, string read_callback,
                             void | string close_callback );

          整數 socket_create( 整數 mode, 字串 read_callback,
                              無參數 | 字串 close_callback );

     用法：
          socket_create() 建立一個 efun socket。mode 決定了要建立哪種
          型態的 socket。目前支援的 socket 型態有：

          MUD         以 TCP 協定傳送 LPC 資料。

          STREAM      以 TCP 協定傳送原始資料。

          DATAGRAM    以 UDP 協定傳送資料。

          read_callback 這個參數是給驅動程式在 socket 由對方接到資料時
          呼叫用的函式名稱。這個讀取回呼(callback)函式應該是如下格式：

               void read_callback(int fd, mixed message)

          這裡的 fd 是接收資料的 socket，而 message 是接收到的資料。

          close_callback 這個參數是給驅動程式在 socket 不正常關閉時
          呼叫的函式名稱，如不同於 socket_close() 的呼叫結果。這個關
          閉回呼函式應該是如下格式：

               void close_callback(int fd)

          這裡的 fd 是已被開閉的 socket。注意：close_callback 不能用
          在 DATAGRAM 型態的 socket 上。

     傳回值：
          socket_create() 傳回：

               成功時是一個非負的描述值(descriptor)。

               失敗時是一個下列意義的負值。

     錯誤值：
          EEMODENOTSUPP  不支援此 socket 型態。

          EESOCKET       建立 socket 的問題。

          EESETSOCKOPT   setsockopt 的問題。

          EENONBLOCK     設定非停滯(non-blocking)模式的問題。

          EENOSOCKS      沒有多餘的 efun sockets。

          EESECURITY     企圖違反安全。

     參照：
          socket_accept(3), socket_bind(3), socket_close(3),
          socket_connect(3), socket_listen(3), socket_write(3)

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