#include <winsock2.h>
#include <iostream>
#include <fstream>

using namespace std;
 
int main(void)
{	
	WSAData wsaData;
	WSAStartup(MAKEWORD(2, 1), &wsaData);

	char hostName[80];

	if ( gethostname(hostName, sizeof(hostName)) == SOCKET_ERROR )
		cout << " Error" << endl;
		
	cout<<"Host Name: "<<hostName<<endl;

	LPHOSTENT mashInf = gethostbyname(hostName);
	char* adressIP = 0;

	for (int i = 0; mashInf->h_addr_list[i] != 0; ++i)
	{
		in_addr hostInfo;

		memcpy(&hostInfo, mashInf->h_addr_list[i], sizeof(in_addr));
		adressIP = inet_ntoa(hostInfo);
	}

	cout <<"Aktualny lokalny/wewnetrzny adres IP komputera/serwera: "<< adressIP << endl; 
	
	SOCKADDR_IN addr; // informacje do nawiazania polaczenia
	SOCKET gniazdoNasluchu = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); // stworzsenie gzniaza nasluchu
	SOCKET klient;

	addr.sin_addr.s_addr = htonl(INADDR_ANY);
	addr.sin_family = AF_INET; // AF_INET - gniazdo nalezy do internetu
	
	cout<<"Podaj numer portu nadawania i odbioru: ";
	int port = 0;
	cin>>port;
	
	addr.sin_port = htons(port);
	
	bind(gniazdoNasluchu, (SOCKADDR*)&addr, sizeof(addr)); // połącznie adresu lokalnego z socketem
	listen(gniazdoNasluchu, 10); // ustawienie gniazda w stan nasluchu

	cout << "\n\nCzekam na klienta" << endl;
	
	char message [ 2048 ];// 	"\nWitamy!\nZalogowales sie na serwerze.\nPozdrawiam Radek Bednarczyk";
	
	fstream file("index.html", ios::in | ios::out);
	file.read( message , sizeof(message) );
	
	for (;;)
	{
		if (klient = accept(gniazdoNasluchu, 0, 0) )
		{
			cout << "Podlaczyl sie nowy kilent." << endl;
			send(klient, message, strlen(message), 0);
		}
		
	}

	WSACleanup();
	return 0;
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl"> 

	<head> 

	<meta http-equiv="Content-Type" content="text/html; charset="iso-8859-2" />
	<meta name="Description" content="Welcome" /> 
	<meta name="Keywords" content="Moja strona" /> 

	<title>Welcome</title> 


	</head> 


		<body>

		<b>WITAJ</b>

		</body> 


</html> 

Efekt działania programu:
https://imageshack.com/i/p3UdBnbcj

Dlaczego przeglądarka nie zamienia kodu html przesłanego przez funkcję send() na poprawny layout strony ? ( Wszystko działa po necie ) Programy pisałem na czuja, więc liczę na wyrozumiałość spokojne rozwiązanie problemu. Jaki jest idea przesyłania strony html na przeglądarkę poprzez pojedynczy plik html czy jako ciąg znaków tak jak w moim przepadku. Znam się trochę na ramkach protokołach TCP, UDP, IP portach i modelu warstwowym sieci także wszelka terminologia z tym związana nie jest mi obca i wszelkie pomysły są mile widziane. Czy należy ten serwer, który napisałem wzbogacić o implementację zapytań serwera? Z tego co widzę przeglądarka tak jakby nie przerywała sesji wczytywania danych bo ciągle kręci się kółko w zakładce. Czy należy zejść poziom niżej z kodem i implementować przesyłanie pakietów.. ? Dziwie się, że to co napisałem w ogóle działa. Dane przesyłam na port 80 protokołu HTTP i wartość 80 trzeba wpisywać w serwerze gdy go włączamy. Nie próbowałem jeszcze rozwiązania z wielowątkowego serwera, ale myślę że istota problemu kryje się już w tym co napisałem.

Proszę o pomoc i pozdrawiam.

Plik index.html jest w pakiecie z plikiem wykonywalnym serwera.