Användarprofil

Uppgifter
Användarnamn
Email
Besök -
Hemsida Ingen
Plats (stad)
Senaste besök 01:00 - 1:a Januari 1970
Poster i forumet
Varningar
Grupp
Medlem sedan 01:00 - 1:a Januari 1970
Artiklar och filer
Den här användaren har inga artiklar eller filer

Avatar


Presentation av

Den här användaren har inte skapat någon personlig presentation.

Senaste inläggen i forumet

Winsock, chars och nummerproblem!
Åh, tack så mycket. Du är min hjälte!

Postad 13:33 - 8:e Juli 2010
Winsock, chars och nummerproblem!
Hejhej!

Jag har precis börjat leka lite med winsock, och fick för mig att göra ett väldigt simpelt spel.

Nå, nu till mitt problem (Vilket förmodligen är väldigt lätt att lösa, men jag är en idiot)

Motståndarens position skickas hela tiden med send() i en whileloop.

Problemet jag stötte på var ju att den inte tar emot integers, utan endast char.

På klientens ände ser det ut så här:
  1. char p2pos[5] = "0 "; //Se fråga nummer två nedan, tack!
  2.  
  3. recv(Socket, p2pos, strlen(p2pos), 0);
  4. player.x = atoi(p2pos);

p2pos är alltså player2s X-position.

På serverns sida (Som också ska vara player1 senare) ser det ut så här: (Detta för att testa)
  1. while(1){
  2. int a = 0;
  3.  
  4. if(a > 998) {a = 1;}
  5. a++;
  6. char buffer[33];
  7. char *num = itoa(a, buffer, 10); //Gör om int a till char num
  8.  
  9. char *pos2 = num;
  10. send(Socket, pos2, strlen(pos2), 0);
  11. }


Nåja, hittils funkar allt.

Men väl överskridit 998gränsen på int A ska den gå tillbaka till 1.
På klientsidan visas då istället "199" och börjar räkna endast de första och skippar de som är efter int A.
Ex: 799, 899, 999, 109, 119


Min fråga i kort och gott, hur ska jag göra för att få den att gå tillbaka till ETT och inte ETT99 när den går under längden på char igen?

Fråga nummer två:
Texten jag strök under, högst upp i sourcekoden
char p2pos[5] = "0 ";
Måste jag göra så?
När jag försökte med endast 0 utan space efter, så gav den mig värdet "0ÿÿÿ", och det är ju inte så mysigt att försöka förvandla om till en int.
Och när jag istället försökte med att utelämna längden, 5an: char p2pos[] = "0" så funkade det inte att göra strängen längre så att säga.

Jag är verkligen urusel på att arbeta med chars har jag lärt mig av hela den här upplevelsen.

Jag hoppas att det inte var allt för jobbigt att dekryptera mitt konstiga sätt att fråga, är väldigt trött så mitt språk är väl inte på topp!
Och jag kan försäkra er om att jag har googlat, utan resultat.

Tack på förhand!



Edit:
Åh, ett till problem!
Om jag drar lite i rutan (Då stannar allt som pågår i den), så blandas p2pos ihop.
exempel:
163
164
165
1661
6716
8169

Postad 00:32 - 8:e Juli 2010

Skicka meddelande
Läs s blog