C++ in Win 8.1

abababab

Grünschnabel
Bei Linux (Ubuntu) funktioniert dieser Code ohne Probleme, aber bei Win will es einfach nicht funktionieren.
Ich will schauen ob er im Netzwerk ist.
Ich benutze mingw32 Compiler könnte das das Problem sein?(in codeblocks)

if(system("ping -n 1 192.168.1.1")!=0){cout<<"kein Empfang";}//in Linux -c statt -n
else{cout<<"Empfang";}

Danke für die Hilfe
 

cwriter

Erfahrenes Mitglied
Ich will schauen ob er im Netzwerk ist.
Ich benutze mingw32 Compiler könnte das das Problem sein?(in codeblocks)
Wahrscheinlich nicht.
aber bei Win will es einfach nicht funktionieren.
Will heissen? Kompiliert es? Gibt es immer "Empfang" aus?

system() ist plattformabhängig und sollte daher vermieden werden. Das Betriebssystem muss bei einem system()-call keinen sinnvollen Wert zurückgeben, z.B. einfach immer 0.
Für das Anpingen eines anderen Computers solltest du auf Linux und Windows Sockets verwenden.

Gruss
cwriter
 

abababab

Grünschnabel
es kompiliert aber macht was ganz verwirrtes zeug.(in Win)Und wiedergibt nie 0.Und ich will den Router anpingen nicht PC.Es soll nur in Windows laufen.
 

cwriter

Erfahrenes Mitglied
Und ich will den Router anpingen nicht PC.
Ein Router funktioniert zumindest bei Pings gleich wie ein PC (bzw. du siehst als Benutzer der "Netzwerksoftware" nicht direkt, dass es anders ist).
Es soll nur in Windows laufen.
system() muss auch nicht über Betriebssystemiterationen hinweg gleich sein. So als Faustregel: Wenn du ein Programm mit system() schreibst, bist du wahrscheinlich mit .bat (Windows) und .sh (Linux) besser beraten. Falls du das aber eh nicht wirklich produktiv, sondern eher edukativ machen willst, kannst du das natürlich auch mit system() in C++ (C) machen.

Bitte mehr Details
Was genau tut es?
Ich schliesse mich dieser Frage an. Wie sieht dein kompletter Code aus?

Gruss
cwriter
 

abababab

Grünschnabel
Verbindung zum Netzwerk herstellen und ich brauche eine Lösung zum überprüfen ob es funktioniert hat.
so wie es jetzt ist kann ich es nicht einmal schließen und es kommt immer wen man es schießen will kein Empfang, aber ca 10 - 20 mal pro 1 mal schließen klicken.
 

abababab

Grünschnabel
#include <iostream>
#include <stdlib.h>

using namespace std;

int main(){

if(system("ping -n 1 192.168.1.1")!=0){
cout<<"kein empf";}
else{cout<<"empf";}

system("pause");
return 0;
}
 

abababab

Grünschnabel
beim einmal beenden kommt es etwa 20 mal bei mir vorher kommt aber nichts musste mein abwürgen weil er so gesponnen hat aber ist auch ein alter pc.
 

cwriter

Erfahrenes Mitglied
Verbindung zum Netzwerk herstellen und ich brauche eine Lösung zum überprüfen ob es funktioniert hat.
Und wenn der Router eine andere Adresse hat? (-> ping ist ein schlechtes Tool für die Feststellung einer Internetverbindung)

so wie es jetzt ist kann ich es nicht einmal schließen und es kommt immer wen man es schießen will kein Empfang
Hast du eine Konsolenanwendung oder eine Win32-Anwendung erstellt?

beim einmal beenden kommt es etwa 20 mal bei mir vorher kommt aber nichts musste mein abwürgen weil er so gesponnen hat aber ist auch ein alter pc.
Tönt mir eher nach eine Schleife oder Ping-Timeout... Hast du 2 "schwarze Fenster" (Eingabeaufforderungen/Konsolen)?
Was passiert bei diesem Code:

C:
#include <stdio.h>
#include <stdlib.h>

int main()
{
system("PAUSE");
getchar();
return 0;
}
? Zwei Fenster oder eines?

Und darf ich dich bitten, ein bisschen auf die Rechtschreibung zu achten? Sie würde dem Verständnis deines Problems zuträglich sein.

/EDIT: Lass dein Programm mal ~1 Minute laufen (oder solange, bis ein Output da ist) und kopiere dann die Ausgabe hier ins Forum.

Gruss
cwriter