1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| UINT Connection::ThreadsSend()
{
TRACE("Thread Send\n");
while(true)
{
WaitForSingleObject(wait_send, INFINITE);
TRACE("WaitForSingleObject : wait_send\n");
if(FIFOimage.GetRemSizeR() == 0)
{
// Il n'y en a pas! La FIFO est donc vide. Il faut attendre que la thread d'écriture
// place un élément dans cette FIFO...
TRACE("FIFO EMPTY!\n");
WaitForSingleObject(wait_send, INFINITE);
} else
{
strcpy(MyArguments.structHeader.name,"Name");
MyArguments.structHeader.numfct = 1;
size = 10000;
TRACE("Thread Send : %s et %d | size = %d\n",MyArguments.structHeader.name, MyArguments.structHeader.numfct,size);
BYTE* jpeg2 = NULL;
DWORD size = 0;
TRACE("Avant le read %s\n",jpeg2);
FIFOimage.Read(MyArguments, size, jpeg2);
TRACE("Après le read %s\n",jpeg2);
char*jpeg = new char[size];
strcpy(jpeg,(const char*)jpeg2);
TRACE("Avant l'archive %s et size = %d\n",jpeg, size);
TRACE("(sock = %.8x) New : m_pFile -> %.8x | m_pArIn -> %.8x | m_pArOut -> %.8x |\n", incomingSock, m_pFile,m_pArIn,m_pArOut);
m_pArOut->Write(jpeg, 10);
TRACE("Après le write\n");
m_pArOut->Flush();
TRACE("Après l'archive\n");
FIFOimage.UpdatePtrR();
}
SetEvent(wait_receive);
}
return 0;
} |
Partager