Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Какие заголовки нужно отослать браузеру для прекращения загрузки страницы

павел халько Знаток (322), на голосовании 9 лет назад
Есть сервер на c++, он может читать сообщения приходящие на заданный порт и отвечать на них, если вбить в браузере ип и порт, то браузер будет тупо грузить страницу до бесконечности, т. к серв не отдает нужные заголовки. Какие заголовки нужно отдать браузеру и в каком виде? код сервера:
#include < iostream >
#pragma comment( lib, "ws2_32.lib" )
#include < Windows.h >
#include <cstring>
#include <fstream>

using namespace std;

int MY_PORT = 1001; // Порт, который слушает сервер

DWORD WINAPI WorkWithClient(LPVOID client_socket);

int user[100];

int main()
{

char buff[1024];
printf("TCP SERVER DEMO\n");
WSAStartup(0x0202, (WSADATA *)&buff[0]);
SOCKET mysocket;
mysocket = socket(AF_INET, SOCK_STREAM, 0);
// Шаг 3 связывание сокета с локальным адресом
sockaddr_in local_addr;
local_addr.sin_family = AF_INET;
local_addr.sin_port = htons(MY_PORT);
local_addr.sin_addr.s_addr = 0;
bind(mysocket, (sockaddr *)&local_addr, sizeof(local_addr));
listen(mysocket, 20);
printf("Waiting for connection \n");

SOCKET client_socket;
sockaddr_in client_addr;

int client_addr_size = sizeof(client_addr);

while ((client_socket = accept(mysocket, (sockaddr *)&client_addr, &client_addr_size)))
{

cout << inet_ntoa(client_addr.sin_addr) << "nowii konect!\n";
DWORD thID;
CreateThread(NULL, NULL, WorkWithClient, &client_socket, NULL, &thID);
}
}
return 0;
}

int u = 0;
long vs = 0;
DWORD WINAPI WorkWithClient(LPVOID client_socket)
{

cout << "new";
SOCKET my_sock = ((SOCKET *)client_socket)[0];
u++;
int my_id = u;
user[u] = my_sock;

int con = 0;
if (u == 1){con = 2;}else{ con = 1; }

cout << my_id <<" "<< con << " " << u <<" "<< endl;

send(user[my_id], "123", 10, 0);

char buff[5000];
while (1)
{
int bytes_recv = recv(my_sock, buff, sizeof(buff), 0);
if (bytes_recv>0){

vs = vs + bytes_recv;
cout << "kto " << my_id << "kyda " << bytes_recv <<" "<< vs <<" "<< con << endl;

send(user[con], buff, bytes_recv, 0);
// f.open("file.wav", ios::app | ios::binary);
// for (int i = 0; i < bytes_recv; i++){f << buff[i];}
// f.close();
}
else{
f.close();
closesocket(my_sock);
break;
}
}
return 0;
}
Голосование за лучший ответ
Р?ван Р?ванов Мыслитель (5710) 9 лет назад
SOCKET my_sock = ((СТОП, БЛЯ! *)client_socket)[0];
Похожие вопросы