
09.09.2009, 23:33
|
|
Участник форума
Регистрация: 26.08.2009
Сообщений: 133
С нами:
8795069
Репутация:
79
|
|
2Gin
PHP код:
//Резервируем и выделяем побайтно память
buffer = (char *)VirtualAlloc(NULL, 1000, MEM_RESERVE, PAGE_READWRITE);
buffer = (char *)VirtualAlloc(buffer, 1, MEM_COMMIT, PAGE_READWRITE);
//Читаем из сокета побайтно, чтобы быть уверенными, что вся инфа дошла
while(recv(sRemoteSock, &buffer[i], 1, 0))
{
//Если встретили перевод строки, то ппц конец передачи
if(buffer[i] == '\n')
{
buffer[i] = '\0';
printf("[>] Client say : %s\n", buffer);
VirtualFree(buffer, 0 , MEM_RELEASE);
i = 0;
break;
}
else
{
//Выделяем ещё один байт
buffer = (char *)VirtualAlloc(buffer + i++ + 1, 1, MEM_COMMIT, PAGE_READWRITE);
}
}
Как то так ) Тут концом сообщения считается перевод строки (можно переделать). Можно в принципе поблочно считывать, а не побайтно.
|
|
|