Ik haal tekst data van een socket, en wil deze totaan \n in een char * stoppen. Een readLine dus.
Dit werk behalve dan dat mijn array veel te lang word en er allemaal bagger instaat (er komt zoiets uit als "blaat=ΘΘΘΘΘΘ" als ik alleen "blaat\n" verzonden heb over de socket). Ik kan alleen het probleem niet vinden.
Code:
Iemand een idee waar het fout gaat?
Dit werk behalve dan dat mijn array veel te lang word en er allemaal bagger instaat (er komt zoiets uit als "blaat=ΘΘΘΘΘΘ" als ik alleen "blaat\n" verzonden heb over de socket). Ik kan alleen het probleem niet vinden.
Code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| char * readLine(SOCKET theSocket)
{
char buffer;
int bytesReceived;
int counter = 0;
char * temp = new char[4096];
while (true) {
bytesReceived = recv(theSocket, &buffer, 1, 0);
if (buffer == '\n' || counter > 4090) {
char *pChar = new char[counter];
memset(pChar, 0, counter);
for (int f = 0; f < (counter); f++) {
pChar[f] = temp[f];
}
delete [] temp;
return pChar;
} else {
temp[counter] = buffer;
counter++;
}
}
} |
Iemand een idee waar het fout gaat?