сокет cpp принимает, но не получает на Ajax GET

Я реализую веб-сервисы в программе CPP на WinCE.
Я поставил веб-сервер (HTTP), прослушивающий порт 8080, и унитарные тесты работают (с использованием почтальона).

Я вставил в html-страницу простой запрос ajax (GET), чтобы получить обратно массив JSON.

Начальный веб-сервер:

struct sockaddr_in serv_addr;
int optlen = 0;
struct timeval vtime;

SCK_ListenServerSocket = socket(AF_INET, SOCK_STREAM, 0);
if (SCK_ListenServerSocket < 0)
return (WBS_Service_Unavailable_503);

// Set receive timeout
optlen = sizeof(struct timeval);

if(getsockopt(SCK_ListenServerSocket, SOL_SOCKET, SO_RCVTIMEO, (char *) &vtime, &optlen) == -1)
{
closesocket(SCK_ListenServerSocket);
return (WBS_Service_Unavailable_503);
}
else
{
vtime.tv_sec = SCK_SRV_RECV_MS_TIMEOUT; // ms
vtime.tv_usec = 0;
if(setsockopt(SCK_ListenServerSocket, SOL_SOCKET, SO_RCVTIMEO, (const char *) &vtime, optlen) == -1)
{
closesocket(SCK_ListenServerSocket);
return (WBS_Service_Unavailable_503);
}
}

memset((void *)&serv_addr, 0, sizeof(serv_addr));

serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = INADDR_ANY;
serv_addr.sin_port = htons(port);

if (bind(SCK_ListenServerSocket, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0)
{
closesocket(SCK_ListenServerSocket);
SCK_ListenServerSocket = -1;
return (WBS_Service_Unavailable_503);
}

if(listen(SCK_ListenServerSocket, 1) < 0)
{
closesocket(SCK_ListenServerSocket);
SCK_ListenServerSocket = -1;
return (WBS_Service_Unavailable_503);
}

return ret;

В потоке эта функция вызывается:

accept_socket = accept(SCK_ListenServerSocket, NULL, NULL);

if(accept_socket < 0)
n = 0;
else
{

n = recv(accept_socket, &buffer[0], 512, 0); //Read 512 bytes

DO THE WORK
}

Эта проблема:

Когда я запускаю веб-страницу в Chrome, сокет открывается правильно, но не получен. Я не знаю почему. Когда я использую POSTMAN, это работает как шарм.

Спасибо за помощь мне.

РЕДАКТИРОВАТЬ: В этой операции сокета блокировки вызывается accept, но recv блокирует. Запуск большого количества запросов разблокирует recv, но в случае сбоя ответ recv равен 0.
Когда я загружаю сайт на WinCE (та же цель), возникает проблема. Когда сайт загружается с моего компьютера и отправляется только запрос, нет проблем

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]