TransmitFile

原创
2016/09/16 21:29
阅读数 42
int nRetVal = TransmitFile(pContext->m_Socket,//
				(HANDLE)pContext->m_File.m_hFile,//已打开的文件
				(DWORD)pContext->m_iMaxFileBytes, /*从文件发送的字节数,取值为零时表示发送整个文件*/
				0,//参数指明每个发送操作中所发送的每个数据块的大小,如果将其指定为零,系统就使用默认的发送大小。
				&pOverlapBuff->m_ol,
				NULL,//包含存储缓冲区,这个存储缓冲区将在文件被传输之前或之后传输。
				0);

				/*对基于文件的I / O(如WEB服务器)来说,TransmitFile 函数很有用。
				另外它的一个有用的特性,是能够指定标志 TF_DISCONNECT 和 TF_REUSE_SOCKET。
				如果两个标志都指定,一旦发送操作完成,文件和(或)存储缓冲区都将被传输,套接字也将断开。
				同时,传递到API的套接字句柄将被用作AcceptEx中的客户机套接字,或用作AcceptEx中的连接套接字。
				因为套接字创建耗费非常之大,所以这一个极其有用。
				服务器可以用AcceptEx来处理客户机连接,
				然后用 TransmitFile 发送数据(指定上述标志),过后套接字句柄可以在随后对的AcceptEx 调用中使用。*/

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部