TClientSocket & TServerSocket посылка картинки
правда писал это дело не я....
Отправить можно при помощи вот такой функции:
//---------------------------------------------------------------------------
Цитата:
bool SendFile(AnsiString FileName, TCustomWinSocket* Socket)
{
int F=open(FileName.c_str(),O_RDONLY|O_BINARY);
if (F==-1) return false;
long FileSize,BytesToSend,Offset=0,Ret=0;
void *Buf;
FileSize=filelength(F);
Buf=malloc(FileSize);
BytesToSend=read(F,Buf,FileSize);
close(F);
if(BytesToSend<=0) {free(Buf);return false;}
while (Offset<BytesToSend && Socket->Connected){
Ret=Socket->SendBuf(Buf,BytesToSend-Offset);
if (Ret==-1){
Sleep(1);
Ret=0;
}
if (Socket->RemoteAddress==Socket->LocalAddress)
Sleep(1);
Offset+=Ret;
(Byte*)Buf+=Ret;
}
(Byte*)Buf-=Offset;
free(Buf);
return true;
}
//---------------------------------------------------------------------------
Вызвать эту функцию можно напрмер так:
//---------------------------------------------------------------------------
Цитата:
if (!OpenDialog1->Execute()) return;
SendFile(OpenDialog1->FileName,ClientSocket1->Socket);
//---------------------------------------------------------------------------
А на принимающей стороне в событии сокета OnRead (для ClientSocket) или OnClientRead(для ServerSocket) нужно вставить примерно такой код:
//---------------------------------------------------------------------------
Цитата:
int Len,Offset=0,Ret=0;
void *Buf;
Len=Socket->ReceiveLength();
Buf=malloc(Len);
while (Offset<Len) {
Ret=Socket->ReceiveBuf(Buf,Len-Offset);
Offset+=Ret;
(Byte*)Buf+=Ret;
}
(Byte*)Buf-=Offset;
AnsiString FileName="c:\\DestFile.txt";
int F;
if (FileExists(FileName))
F=open("c:\\DestFile.txt",O_WRONLY|O_BINARY);
else
F=open("c:\\DestFile.txt",O_WRONLY|O_CREAT|O_BINARY);
if (F==-1) {free(Buf);return;}
lseek(F,filelength(F),SEEK_SET);
write(F,Buf,Len);
close(F);
free(Buf);
//---------------------------------------------------------------------------
http://borland.xportal.ru/forum/viewtopic.php?t=5270&postdays=0&postorder=asc&highlight=clientsocket%20sendstream&start=0