要传文件,为什么TransmitFile()函数总是出错?大虾帮忙看看啊
WSADATA wsa;
SOCKET sock;
struct sockaddr_in sin;
HANDLE hFile;
DWORD dwSize;
hFile=CreateFile("1.dat",0,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if(hFile==NULL)
{
printf("Open file failed");
return 0;
}
if(WSAStartup(0x0202,&wsa)==SOCKET_ERROR)
return 0;
if((sock=socket(AF_INET,SOCK_STREAM,0))==INVALID_SOCKET)
return 0;
sin.sin_addr.s_addr=inet_addr(server);
sin.sin_family=AF_INET;
sin.sin_port=htons(12345);
if(connect(sock,(struct sockaddr*)&sin,sizeof(sin))==SOCKET_ERROR)
return 0;
dwSize=GetFileSize(hFile,NULL);
TRANSMIT_FILE_BUFFERS transBuf;
transBuf.Head=(PVOID)&dwSize;
transBuf.HeadLength=4;
transBuf.Tail=NULL;
transBuf.TailLength=0;
TransmitFile(sock,hFile,0,2046,NULL,&transBuf,TF_REUSE_SOCKET);
CloseHandle(hFile);
closesocket(sock);
WSACleanup();
前面一切正常,到了TransmitFile就会返回“拒绝访问”的错误,谁用过这个函数,说说我错在哪里?