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 66 67 68 69 70 71 72 73 74 75 76 77 78
| DWORD BluetoothThread::ClientThread(SOCKET soc, SOCKADDR *pAdd)
{
WSAQUERYSET service;
CSADDR_INFO csAddr;
int ilen, nbAdd, compteur;
SOCKADDR_BTH sab2;
SOCKET NewConnection;
ofstream fichier("test.txt", ios::out | ios::trunc); // ECRASE
//ofstream fichier("test.txt", ios::out | ios::app); // AJOUTE
cout << endl << "!-- Thread client demarre --!" << endl;
memset(&service, 0, sizeof(service));
service.dwSize = sizeof(service);
GUID serviceID = SAMPLE_UUID ;
service.lpServiceClassId = (LPGUID) &serviceID ;
service.dwNumberOfCsAddrs = 0 ;
service.dwNameSpace = NS_BTH ;
memset(&csAddr, 0, sizeof(csAddr));
csAddr.LocalAddr.iSockaddrLength = sizeof(SOCKADDR_BTH);
csAddr.LocalAddr.lpSockaddr = pAdd;
csAddr.iSocketType = SOCK_STREAM;
csAddr.iProtocol = BTHPROTO_RFCOMM;
service.lpcsaBuffer = &csAddr;
running = true;
ilen = sizeof(sab2);
while(running)
{
if( (NewConnection = accept( soc, (struct sockaddr*)&sab2, &ilen)) == INVALID_SOCKET )
{
Affiche_Erreurs( WSAGetLastError() );
return 1;
}
else
{
wprintf (L"\nConnection entrante de : %04x%08x par le channel : %d\n", GET_NAP(sab2.btAddr), GET_SAP(sab2.btAddr), sab2.port);
memset(buffer, 0, sizeof(buffer));
recv(NewConnection,(char*)buffer,1, 0);
nbAdd=(int)buffer[0];
cout << "Nombre de boucles : " << (int)buffer[0] << endl << endl;
for(compteur=0; compteur<nbAdd; compteur++)
{
nombre_co++;
recv(NewConnection,(char*)buffer, sizeof(buffer), 0);
fichier << buffer << " : " << QDateTime::currentDateTime().toString().toStdString().c_str() << endl ;
cout << "- Retour " << compteur+1 << ": " << buffer << endl;
}
mess_retrn = buffer;
string str_crypt;
cryp->vigenere_crypter(mess_retrn,str_crypt,cle);
mess_retrn = str_crypt;
closesocket(NewConnection);
}
}
if (WSASetService(&service, RNRSERVICE_DELETE, 0) == SOCKET_ERROR)
Affiche_Erreurs( WSAGetLastError() );
shutdown(soc,2);
closesocket( soc );
fichier.close();
ExitThread(0);
return 0;
} |
Partager