Modtag mere data end én streng.

Tags:    c++

<< < 12 > >>
Hejsa.

Jeg har et C++ program som pt. køre vha. TCP socket. Den looper mens den er true og tillader mange tilslutninger. Men mit problem er så at jeg ikke kan sende eller modtage mere end én ting pr. tilslutning. Jeg sender f.eks. "1" til min server vha. et php script. Og så sender den mig "OK" tilbage. Men så kan jeg ikke sende mere eller modtage mere. Jeg vil gerne sende 3 ting og modtage 3 ting. I denne rækkefølge. Den der atoi() funktion tillader kun tal.
Fra klienten.
1. Test om tilslutningen er ok.
- Modtag værdien 1 fra serveren. (1 = tilslutnigen blev lavet korrekt)
2. Send et brugernavn og kodeord.
- Serveren checker om brugernavn og kodeord passer med mysql databasen.
- Og så verificere om der er rigtigheder nok.
3. Send forespørgelse om et eller andet.
- Modtag om det blev gjort rigtigt.

Her er min php kode..
Fold kodeboks ind/udPHP kode 


Og så min c++ kode.

Fold kodeboks ind/udC++ kode 


Hvordan kan jeg lave det? Jeg har brugt nogle timer på eller rettere dage på at prøve lidt af hver. Det er på Windows. :)

- Mvh Magnus.



Indlæg senest redigeret d. 01.05.2010 01:28 af Bruger #15047
Nogen som kan hjælpe? :)


Så skal du til at fortolke på de data, du modtager.
Fold kodeboks ind/udKode 


...lidt simpelt, men du kan jo også smide de modtagne data videre til en XML parser.



Hejsa tak for svaret, det virker på en måde.

Når jeg går sådan her holder programmet op med at virke..
Fold kodeboks ind/udKode 


Og jeg vil gerne have mulighed for at bruge det der %s, buffer inde i min mysql query, hvordan kan jeg gøre det?



Indlæg senest redigeret d. 07.05.2010 12:44 af Bruger #15047
Hejsa tak for svaret, det virker på en måde.

Når jeg går sådan her holder programmet op med at virke..
Fold kodeboks ind/udKode 

Du udskriver row2[4] men derefter tilgår du row[4]. row er nok ikke initialiseret.
Og så bruger du == operatoren med C strenge. Den går ikke. Brug hellere strcmp:
if (strcmp(row2[4], "Z") == 0)...

Og jeg vil gerne have mulighed for at bruge det der %s, buffer inde i min mysql query, hvordan kan jeg gøre det?


Fold kodeboks ind/udKode 




Hejsa tak for svaret, det virker på en måde.

Når jeg går sådan her holder programmet op med at virke..
Fold kodeboks ind/udKode 

Du udskriver row2[4] men derefter tilgår du row[4]. row er nok ikke initialiseret.
Og så bruger du == operatoren med C strenge. Den går ikke. Brug hellere strcmp:
if (strcmp(row2[4], "Z") == 0)...

Og jeg vil gerne have mulighed for at bruge det der %s, buffer inde i min mysql query, hvordan kan jeg gøre det?


Fold kodeboks ind/udKode 


Ja min fejl, det skulle have været row2[4];
Nu går den ikke ned, men den udskriver heller ikke "omg". if(row2[4] == "Z") { cout << "omg"; } det skriver den ikke :( Men når jeg cout << row2[4] så får jeg Z udskrevet.

Og tak for det hurtige svar :)

Og hvad er forskellen på strstr og strcmp?
strstr virker da ok eller hvad?



Hejsa tak for svaret, det virker på en måde.

Når jeg går sådan her holder programmet op med at virke..
Fold kodeboks ind/udKode 

Du udskriver row2[4] men derefter tilgår du row[4]. row er nok ikke initialiseret.
Og så bruger du == operatoren med C strenge. Den går ikke. Brug hellere strcmp:
if (strcmp(row2[4], "Z") == 0)...

Og jeg vil gerne have mulighed for at bruge det der %s, buffer inde i min mysql query, hvordan kan jeg gøre det?


Fold kodeboks ind/udKode 


Ja min fejl, det skulle have været row2[4];
Nu går den ikke ned, men den udskriver heller ikke "omg". if(row2[4] == "Z") { cout << "omg"; } det skriver den ikke :( Men når jeg cout << row2[4] så får jeg Z udskrevet.

Som sagt kan du ikke bruge == operatoren med C strenge. Brug strcmp.

Og hvad er forskellen på strstr og strcmp?
strstr virker da ok eller hvad?


strcmp tjekker hvilken streng som alfabetisk kommer først. Den returnerer negativt, hvis første streng kommer først, positivt hvis anden streng kommer først og 0 hvis de to strenge er éns.

strstr søger efter en substreng i en anden streng og returnerer en reference til strengen, hvor denne substreng forekommer. Den returnerer NULL, hvis substrengen ikke forekommer i strengen:

Fold kodeboks ind/udKode 




ok. Nu bruger jeg strcmp.
Men følgende giver stadig ingen ting.
Fold kodeboks ind/udKode 





ok. Nu bruger jeg strcmp.
Men følgende giver stadig ingen ting.
Fold kodeboks ind/udKode 



Det skal også være == 0



Følgende kode:
Fold kodeboks ind/udKode 


...giver følgende output:
Fold kodeboks ind/udKode 




Det var da dejligt, nu skrev den "omg" :)

Tusinde tak, Robert!

== 0 løste det :D



<< < 12 > >>
t