Re: Huge File read and send via socket
The correct groups would be:
microsoft.public.vc.language
microsoft.public.win32.programmer.networks
The former for language/platform issues (like the fact you are trying
to map the entire file into the process virtual space, which cannot
work for huge files you are interested in on a 32-bit platform) and
the latter in case there are issues with your networking code. BTW,
you didn't specify what your problem is in the first place...
--
=====================================
Alexander Nickolov
Microsoft MVP [VC], MCSD
email: agnickolov@mvps.org
MVP VC FAQ: http://vcfaq.mvps.org
=====================================
"Ganesh" <gvijayaratnam@gmail.com> wrote in message
news:%23KfMenYXIHA.4448@TK2MSFTNGP03.phx.gbl...
Hi all,
I am new to c++ and socket programming, I have a situvation that my function
have to a binary read ( whole file as 1 chunk ) and keep the buffer, and
send the buffrer via socket by chunk by chunk as user specified. I have
written a code sample, but I am not getting the correct out out.
can some one pls look in to the code and fix it ?
FILE *fp23 = fopen( "c:\\hpfile.prn", "rb" );
fseek (fp23 , 0 , SEEK_END);
int m_jobSize = ftell (fp23);
rewind (fp23);
char* m_buffer = new char[m_jobSize+1];
int m_result = fread( m_buffer, 1, m_jobSize, fp23 );
///////////////////////////////////////////////
int BytesIndex = 0;
while( bufsize > 0)
{
// Send some bytes
if ( bufsize < (unsigned long)iSendStatus )
{
iSendStatus = send(*sock, &m_buffer[BytesIndex], bufsize, 0); // Socket
is of type
//
// Call Back Function
//
set += iSendStatus;
ptr(jobid,set);
if ( iSendStatus != bufsize )
{
cpError = SocketErrorHandler();
return cpError;
}
}
else
{
iSendStatus = send(*sock, &m_buffer[BytesIndex], chunkSize, 0); // Socket
is of type
//
// Call Back Function
//
set += iSendStatus;
ptr(jobid,set);
if ( iSendStatus != chunkSize )
{
cpError = SocketErrorHandler();
return cpError;
}
}
// Update buffer and counter
if ( bufsize < (unsigned long)iSendStatus )
{
bufsize -= bufsize;
BytesIndex += bufsize;
}
else
{
bufsize -= iSendStatus;
BytesIndex +=iSendStatus;
}
//////////////////////////////
regards
Ganesh