
02.01.2009, 18:03
|
|
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
С нами:
10535289
Репутация:
107
|
|
С TransmitFile все предельно просто надо просто 2 указателя открытого приконекченного сокета и открытого файла.
Код:
char fname[1024];
SOCKET s;WSADATA wsd;
SOCKADDR_IN adr;
WSAStartup(MAKEWORD(2,0),&wsd);
adr.sin_family=AF_INET;
adr.sin_port=htons(1060);
adr.sin_addr.s_addr=inet_addr("127.0.0.1");
s=socket(AF_INET,SOCK_STREAM,0);
connect(s,(sockaddr*)&adr,sizeof(adr));
HANDLE f=CreateFile(fname,GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_FLAG_RANDOM_ACCESS,0);
TransmitFile(s,f,0,1024*1024,NULL,0,TF_USE_KERNEL_APC);//файл передается кусками по мегабайту
closesocket(s);
CloseHadle(f);
Принимать то же просто.То есть в бесконечном цикле пока recv возвращяет значения больше 0.
Последний раз редактировалось _nic; 02.01.2009 в 18:07..
|
|
|