Enkel C ++ TCP/IP ved hjælp af streams (Windows)

Indlæg af Hanne Mølgaard Plasc

Problem



Hvad jeg har brug for er en løsning, der ville lade mig (og min programmeringskonkurrence holdes) bruge TCP/IP i C ++ under Windows på den enkleste mulige måde. Nogle opgaver vil sandsynligvis kræve en fuldstændig synkron tekstkommunikation med serveren. Den bedste mulighed ville være en DOS-kommando eller et program, der ville omdirigere oll-ind/ud-kommunikation af applikationen og sende/modtage den via TCP, som Linux netcat:


> cool\_proxy 123.122.121.43 1234 abc.exe


Og inde i programmet:


int query;
cin >> query;
cout << "The answer is " << (query+123);


Men Windows Netcat synes at savne den funktion ... Hvis det ikke er muligt, kan en anden simpel mulighed hjælpe:


Some\_cool\_sockect scs("123.122.121.42:1234");
scs.connect();
int query;
scs >> query;
scs << "The answer is " << (query+123);


Det behøver ikke at nå høje præstationer, bare simpelt, fuldt synkroniseret halvduplex TCP. Jeg kan håndtere TCP ret flydende i C #, så jeg kunne skrive en slags proxy, men måske eksisterer denne ting allerede :)

Bedste reference


Du kan måske se et bibliotek som POCO. I navneområdet Poco :: Net er der flere klasser, som giver dig mulighed for at oprette en klient/server. [4]


Da dette bibliotek er åbent, kan du kigge på det og se, hvordan disse klasser opretter stikkontakter mv.


Googling til 'Windows socket c ++' har også bragt dette eksempel: Dette vil også give de nødvendige grundlæggende oplysninger, men jeg ved ikke, om dette eksempel er opdateret, så det måske ikke fungerer med de nuværende Windows-versioner. [5]