PR_TransmitFile¶
通过已连接的套接字发送完整的文件。
语法¶
#include <prio.h>
PRInt32 PR_TransmitFile(
PRFileDesc *networkSocket,
PRFileDesc *sourceFile,
const void *headers,
PRInt32 hlen,
PRTransmitFileFlags flags,
PRIntervalTime timeout);
参数¶
该函数具有以下参数
networkSocket
指向一个 PRFileDesc 对象的指针,该对象表示用于发送数据的已连接套接字。
sourceFile
指向一个 PRFileDesc 对象的指针,该对象表示要发送的文件。
headers
指向保存要在发送数据之前发送的报文的缓冲区的指针。
hlen
headers
缓冲区长度(以字节为单位)。flags
以下标志之一
PR_TRANSMITFILE_KEEP_OPEN 指示在发送数据后套接字将保持打开状态。
PR_TRANSMITFILE_CLOSE_SOCKET 指示在成功传输文件后应立即关闭连接。
timeout
传输操作完成的时间限制。
返回值¶
正数表示成功写入的字节数,包括报文和文件。
值 -1 表示失败。如果在发送文件时发生错误,则忽略
PR_TRANSMITFILE_CLOSE_SOCKET
标志。可以通过调用 PR_GetError 获取失败的原因。
描述¶
PR_TransmitFile 函数通过已连接的套接字 (networkSocket
) 发送完整的文件 (sourceFile
)。如果 headers
不为 NULL
,PR_TransmitFile 会在发送文件之前通过套接字发送报文。
flags
参数中使用的枚举 PRTransmitFileFlags
定义如下
typedef enum PRTransmitFileFlags {
PR_TRANSMITFILE_KEEP_OPEN = 0,
PR_TRANSMITFILE_CLOSE_SOCKET = 1
} PRTransmitFileFlags;