Какие заголовки нужно отослать браузеру для прекращения загрузки страницы
павел халько
Знаток
(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; // Порт, который слушает сервер
#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;
}