Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Ports

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
26.08.2002, 08:28 Uhr
~anfänger
Gast


Wie kann ich rausbekommen, über welchen Port sich ein CLient an meinen Server anmeldet ???

MfG
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
26.08.2002, 11:03 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Das ist nur ein Dialog, der alle Dienste auf einem Srevr abfragt. Um die Fehler auszugeben, gibts zwei Statics.


C++:
void CServicesDlg::OnConnect()  
{
    Socket sck;
   // Werte der Dialogcontrols in Variablen übertragen
   UpdateData();
   CWaitCursor wait;
   m_cListbox.ResetContent();
   // Verbindung zum Server mit Portnummer herstellen
   for (int 1*1;  i  < 10000;  i++)  
   {
     char szText[1024];
     // Socket erzeugen
     sck.Create();
     sprintf(szText,  "Überprüfe Portnummer %d\", i);    
     m_sStatusbar = szText;
     // Verbindung aufbauen  
     if (sck.Connect(m_sHostname,  i))  
    {
       servent FAR*    serv;
  
       // Beschreibung des Dienstes ermitteln
       serv =  ::getservbyport  (i,  NULL);
       if  (serv)
          sprintf(szText,  "
%d  %s  %s",  i,  serv->s_name,  serv->s_proto);
       else
          sprintf(szText,  "
%d",  i);
    
      //Vorhandenen  Dienst  in  Listbox  aufführen
      m_cListbox.InsertString(-l,  szText);
    }

    // Verbindungsaufbau geglückt :D

    int  nError  =  sck.GetlastError();
    if  (nError  !=  WSAECONNREFUSED  &&  nError  !=  0)   {
      sprintf(szText,  "
%d  wurde  abgewiesen  (%d)",  i,  nError);
      m_cListbox.InsertString(-1,  szText);
    }

    //  Socket  wieder  schließen
    sck.Close();
    //  auf  Abbruch  überprüfen
    if  (::GetAsyncKeyState(VK_DELETE))   {
      m_sStatusbar  =  "
Auflistung  der  Portnummern  vorzeitig  beendet!";
      break;
    }

    // Statuszeile ausgeben
    UpdateData(FALSE);
   }
  UpdateData(FALSE);
}



Hoffe, ich hab dich richtig verstanden

mfg mike
--

Dieser Post wurde am 26.08.2002 um 11:07 Uhr von mike editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
26.08.2002, 11:12 Uhr
~anfänger
Gast


das ist schon nicht schlecht !!!!
Mal noch eine Frage, wie kann ich die IP Adresse von einem Client rausbekommen ??? Ich habe einen Server bei dem sich die Clients auf einen Port anmelden, ich möchte nun in meiner Accept anweisung die IP-Adresse des Clients rausbekommen und diese dann in eine Datenbank schreiben. Die Datenbank ist kein Thema, aber wie bekomme ich die IP-Adresse ??? Irgendwie muß der die ja mitsenden, damit eine verbindung zustande kommen kann.
MfG
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
26.08.2002, 14:11 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Wenn ich dich richtig verstehe, sitzt du an Client und möchtest wissen wer am Server draufhängt??? Lauft von dir ein Programm am Server oder nur eine normale NT Verbindung???

mfg mike
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
26.08.2002, 15:26 Uhr
~anfänger
Gast


Nein nicht ganz, ich sitze am Server und möchte wissen welcher client sich mit mir verbindet, es ist noch kein fertiges programm und bis jetzt konnten sich so immer 2 Personen (Client-Server) unterhalten. Nun möchte ich aber mehrere Clients zulassen und würde dann gerne die IP-Adressen von den Clients wissen. Es würde mir auch etwas anderes über den Client reichen, nur damit ich den Client eindeutig identifizieren kann. Der Server basiert auf Sockets und läuft über den Port 4000.

MfG Björn
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
26.08.2002, 20:21 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Ich bin mir nicht ganz sicher: Probier mal ein Protokoll zu verwenden. Z.b. das Finger Protokoll ist sehr beliebt. Der Client sendet einfach seine Daten mit. Und die loggins protokollierst du am Server.

mfg mike
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
27.08.2002, 20:00 Uhr
Christian
C/C++ Master
(Operator)


Hi!

Man kann doch der Funktion Accept(..) optional eine SockAddr Variable übergeben. Die speichert dann die IP des Clients.

Grüße
--
Grüße, Christian
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
28.08.2002, 15:08 Uhr
~anfänger
Gast


@Christian,

leider funktionert das nicht, OnAccept() funktioniert nur wenn man die Parameter (int nErrorCode) übergibt, wenn ich nun noch einen Parameter für die SockAddr hinzufüge, springt er beim .Listen() nicht mehr in die OnAccept() funktion.
Oder mache ich einfach nur etwas falsch ???
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: