Hi again,
some code:
Code:
#include...
....
HANDLE mutex_req;
...
DWORD WINAPI tcpserver()
{ mutex_req=CreateMutex(NULL,TRUE, "req_mutx");
bool run_tcpserver=TRUE;
if (listen(socketInTCP,1) == SOCKET_ERROR)
printf("Server: listen(): Error listening on socket %ld.\n", WSAGetLastError());
else
{
cout << " TCP-Server Start \n" << endl;
}
char recvbuf[1500] = "";
int bytesRecv = SOCKET_ERROR;
int control=1;
while (1)
{ SOCKET AcceptSocket;
AcceptSocket = accept(socketInTCP, NULL, NULL);
if (AcceptSocket == INVALID_SOCKET)
{
printf("Server: WSA:\n");
}
else
{
printf("Server: Client Connected!\n");
while(run_tcpserver)
{ bytesRecv = recv(AcceptSocket, recvbuf, sizeof(recvbuf), 0);
if (bytesRecv > 0)//Client hat Verbindung beendet
{WaitForSingleObject(mutex_req, INFINITE);
ofstream outfile(outputfile, ios::app | ios::binary | ios::trunc);//open
printf("incoming Rx Dump Data ... \n");
}
outfile.write (recvbuf, bytesRecv);
outfile.close();
memset(recvbuf,0,sizeof(recvbuf));
}
else
{if(control==1;
ReleaseMutex(mutex_req);
control++;
}
}
//socketInTCP=AcceptSocket;
}
}
return 0;
}
int main()
{
thread2 = CreateThread(0, 0,(LPTHREAD_START_ROUTINE) tcpserver,NULL,0,&threadID2);
....
WaitForSingleObject(mutex_req,INFINITE);//when first dump ready, we request the next
length = createMessage2(packet);
initiateRxDump(packet);
ReleaseMutex(mutex_req);
......
}
Thank you for your help