Alcune delle informazioni di tye che desideri sono qui: link . Potrebbe non sembrare quello che stai cercando di fare è molto complicato, ma è un po 'più complicato di quanto tu possa pensare. Come ha detto Dominic, la parte difficile sarà l'apertura della porta e la lettura dal socket - abbastanza difficile in terra c ++.
Consiglio di iniziare, utilizzare un server Web esistente e scrivere il proprio modulo CGI. Il server Web si prenderà cura del lato socket delle cose e fondamentalmente stai solo leggendo i dati dalle variabili di ambiente o dagli argomenti della riga di comando (se si tratta di una richiesta GET) o dallo stdin se è un POST (penso, questo è dato dalla mia memoria che ha circa 15 anni). Quello che vuoi è qualcosa del genere:
#include <stdio.h>
#include <string.h>
int main(){
char *s=getenv("CONTENT_LENGTH");
int i=atoi(getenv("CONTENT_LENGTH"));
printf("Content-type: text/html\n\n");
printf("%s\n<br />",s); //Shows you CONTENT_LENGTH works
printf("%d\n<br />",i); //Shows you it was converted to int
char *tmp = new char[100];
fread(tmp,i,1,stdin); //read from stdin something of i bytes to tmp
printf("%s\n<br />",tmp);
return 0;
}
BTW come lezione per il lettore questa applicazione ha un bug di overflow del buffer .. probabilmente vorrai risolvere il problema:)