socket_create(3) MudOS (5 Sep 1994) socket_create(3)
名称:
socket_create() - 建立一个 efun socket
语法:
#include
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)
翻译:
[email protected] 97.Jul.26 (printed 3/16/95)