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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
| DWORD WINAPI lectureFichierGPS(LPVOID lpParam)
{
string fileName;
int maxSofts, x = 1;
PMYDATA pData;
pData = (PMYDATA)lpParam;
fileName = pData->fileNameLink;
//Traitement
HeapFree(GetProcessHeap(), 0, pData);
return 0;
}
void listenPort()
{
PMYDATA pData;
string fileName;
int port = 1563, sinsize;
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData);
SOCKET sock;
SOCKET csock;
SOCKADDR_IN sin;
SOCKADDR_IN csin;
sock = socket(AF_INET, SOCK_STREAM, 0);
sin.sin_addr.s_addr = INADDR_ANY;
sin.sin_family = AF_INET;
sin.sin_port = htons(port);
bind(sock, (SOCKADDR *)&sin, sizeof(sin));
listen(sock, 0);
sinsize = sizeof(csin);
do
{
cout << "Waiting for connection..." << endl;
if ((csock = accept(sock, (SOCKADDR *)&csin, &sinsize)) != INVALID_SOCKET)
{
cout << "Connection established !" << endl;
fileName = attenteInfos(1564, csock);
closesocket(csock);
}
if (fileName != "NOP")
{
cout << "File received, current processing file !" << endl;
char *fileNameChar;
fileNameChar = new char;
strcpy(fileNameChar, fileName.c_str());
pData = (PMYDATA) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(MYDATA));
pData->fileNameLink = fileNameChar;
CreateThread(NULL, 0, lectureFichierGPS, pData, 0, NULL);
Sleep (1000);
delete (fileNameChar);
}
else
{
cout << "File not received, same MD5 !" << endl;
}
}
while (1);
closesocket(sock);
WSACleanup();
} |
Partager