Zum Inhalt springen

Fehler bei accept()


PuppetMaster

Empfohlene Beiträge

Moin Leutz!

Ich hab hier ein Problem bezüglich Sockets. wenn ich das accept() aufrufe hält mein Prog an und lässt nichts mehr mit sich machen. Ich muss es dann immer abbrechen und ich weiß nicht warum. :( Ich bekomm nicht mal ne Fehlermeldeung!!! Weiterhin schreibt mir das Prog auch nichts mehr in meine Listbox. Wenn ich aber mit Haltepunkten arbeite und schritt für schritt durchgehe, dann zeigt er mir die Ausgaben an.Warum? Keine Ahnung *ratlosbin* :confused:

Hier mal der Hauptteil von meinem Code:


void MySniffer::lookforip(void)
{
int len = sizeof(sockaddr_in);
int len2 = sizeof(sockaddr);
int option_flag;

//Socket wird auf Lokalen Server gebunden, bei Fehlschlag gib den Error aus
if(bind(ServerSocket, (sockaddr*)&ServerSAddr, sizeof(ServerSAddr)) == SOCKET_ERROR)
{
Form1->ListBox1->Items->Add("Binding Socket failed: " + (AnsiString)WSAGetLastError());
return;
}

//Socket-Optionen werden festgelegt
if(setsockopt(ServerSocket, SOL_SOCKET, SO_REUSEADDR, (char*)&option_flag, sizeof(option_flag)*2) == SOCKET_ERROR)
{
Form1->ListBox1->Items->Add("Setting Socket-Options failed: " + (AnsiString)WSAGetLastError());
return;
}

//Port wird abgehört, bei Fehlschlag gib den Error aus
if(listen(ServerSocket, 5) == SOCKET_ERROR)
{
Form1->ListBox1->Items->Add("Listening on Socket failed: " + (AnsiString)WSAGetLastError());
return;
}

//Endlosschleife
for(;
{
//bei Anfrage akzeptiere Verbindung
ClientSocket = accept(ServerSocket, (sockaddr*)&ClientSAddr, &len);

//wenn der ClientSocket nicht erstellt werden konnte gib den Error aus
if(ClientSocket == INVALID_SOCKET)
{
Form1->ListBox1->Items->Add("Initializing Client-Socket failed: " + (AnsiString)WSAGetLastError());
break;
}

//Ausgabe des Remote-Hostnamens, bei Fehler gib den Error aus
if(getpeername(ClientSocket, (sockaddr*)&ClientSAddr, &len2) == SOCKET_ERROR)
{
Form1->ListBox1->Items->Add("Getting Peername of Client-Socket failed: " + (AnsiString)WSAGetLastError());
}
else
{
IP = inet_ntoa(ClientSAddr.sin_addr);
Form1->ListBox1->Items->Add(IP);
}
Sleep(1000);
}
}
[/php]

P.S. das Ganze befindet sich in einer Klasse die ich geschrieben hab; der ServerSocket wird in einer anderen Methode initialisiert

Ich hoffe ihr könnt mir helfen?

Danke!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...