Compuholic Mini JLI'ler
Anmeldedatum: 15.10.2002 Beiträge: 25
Medaillen: Keine
|
Verfasst am: 12.01.2003, 13:08 Titel: accept() und sockaddr* |
|
|
Ich hab mal wieder ein Problem:
Ich habe einen Socket, der auf einen bestimmten Port hört. Ich möchte nun die IP-Adresse eines Clients, der eine Verbindung herstellen will in einer ListBox anzeigen.
Folgender Code Ausschnitt zeigt die Funktion, die eingehende Verbindung akzeptiert. ConnectionInfo (ein struct sockaddr_in) sollte in diesem Fall doch die Daten der Verbindung (IP, Protokollfamilie, etc.) bekommen. Wenn ich allerdings auf den Port connecte wird in der ListBox immer "User connected: 0.0.0.0" angezeigt.
Wenn ich das Programm debugge, sehe ich, daß alle Felder in ConnectionInfo = 0 sind. Die accept Funktion wird aber korrekt beendet, da ein neue Socket Deskriptor erzeugt wird.
Hat jemand eine Ahnung warum das nicht funktioniert?
Danke.
Code: |
Connection[0] = accept(MySocket, (struct sockaddr*)&ConnectionInfo, &size);
SendData("\x20\x0d\x0a", Connection[0]);
lstrcpy(SelectedFile, "User connected: ");
lstrcat(SelectedFile, inet_ntoa(ConnectionInfo.sin_addr));
SendDlgItemMessage(hWnd, IDC_STATUS, LB_ADDSTRING, 0, (LPARAM)SelectedFile);
|
|
|