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指向保存要在发送数据之前发送的报文的缓冲区的指针。
hlenheaders缓冲区长度(以字节为单位)。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;