int socket_create( int mode, string read_callback, void | string close_callback );
整数 socket_create( 整数 mode, 字符串 read_callback, 无参数 | 字符串 close_callback );
MUD 以 TCP 协议传送 LPC 数据。
STREAM 以 TCP 协议传送原始数据。
DATAGRAM 以 UDP 协议传送数据。
read_callback 这个参数是给驱动程序在 socket 由对方接到数据时调用用的函数名称。这个读取回呼(callback)函数应该是如下格式:
这里的 fd 是接收数据的 socket,而 message 是接收到的数据。
close_callback 这个参数是给驱动程序在 socket 不正常关闭时调用的函数名称,如不同于
socket_close() 的调用结果。这个关闭回呼函数应该是如下格式:
这里的 fd 是已被开闭的 socket。注意:close_callback 不能用在 DATAGRAM 类型的 socket 上。
失败时是一个下列意义的负值。
EESOCKET 建立 socket 的问题。
EESETSOCKOPT setsockopt 的问题。
EENONBLOCK 设定非停滞(non-blocking)模式的问题。
EENOSOCKS 没有多余的 efun sockets。
EESECURITY 企图违反安全。