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
Du skal starte en løkke, som for hvert gennemløb læser én linje (eller fylder en buffer), og som først stopper, når den anden forbindelse har lukket forbindelsen, eller du selv mener, at forbindelsen skal lukkes.

Noget i stil med:
Fold kodeboks ind/udKode 




Hejsa. Tak for svaret. Det vil min compiler ikke.(Dev-C++ 4.9.9.2). Den giver mig fejl, fordi den siger laver int om til char.
(93 C:\Dev-Cpp\Templates\server.cpp invalid conversion from `int' to `const char*' ).

Og jeg slog op på atoi og den vil kun have tal, men da jeg skal sende meget andet end tal, hvad skal jeg så bruge?

- Magnus.



Hejsa. Tak for svaret. Det vil min compiler ikke.(Dev-C++ 4.9.9.2). Den giver mig fejl, fordi den siger laver int om til char.
(93 C:\Dev-Cpp\Templates\server.cpp invalid conversion from `int' to `const char*' ).

Og jeg slog op på atoi og den vil kun have tal, men da jeg skal sende meget andet end tal, hvad skal jeg så bruge?

- Magnus.

argh..det skulle også have været:
Fold kodeboks ind/udKode 




Jeg har skrevet det sådan her op og får stadig fejlen:
Fold kodeboks ind/udKode 




Indlæg senest redigeret d. 03.05.2010 14:27 af Bruger #15047
Fjern denne:
Fold kodeboks ind/udKode 

...og erstat med:
Fold kodeboks ind/udKode 

...som ikke skal stå under dit recv() kald:

Fold kodeboks ind/udKode 




Indlæg senest redigeret d. 03.05.2010 15:00 af Bruger #2695
Tak nu sker der noget. Okay jeg sendte i et forsøg tallet 1 til den, nu spammer den bare 1 hele tiden.

Jeg prøvede med følgende for at stoppe det:
Fold kodeboks ind/udKode 




Hvad kan jeg gøre eller hvad gør jeg galt?



Prøv at udskifte dette:
Fold kodeboks ind/udKode 


...med dette:
Fold kodeboks ind/udKode 




Nu sker der noget igen. Nu modtager den det og samtidigt skriver den ikke det hele tiden.

Samt den modtager 2 tal nu! Jeg sender 0 og 3, den læser dem begge. Men er det ikke muligt for mig at sende en streng? Da hvis jeg sender "hej" nu bliver det bare til noget tal. Og kan jeg ikke gøre sådan at den ikke gemmer alt dataen i int id?
id indeholde både 0 og 3 :/



Nogen som kan hjælpe? :)



<< < 12 > >>
t