Server Client IP herausfinden
-
hey com,
ich habe einen server geschrieben der auf der grundstruktur von der internetseite c-workers basiert:
http://www.c-worker.ch/tuts/select.phpauf meinem server sind immer ungefähr 15 personen und ich wollte mal fragen nur so aus neugier wie ich für jeden socket die dazugehörige ip angeben kann...
z.b.
Socket s;
....cout<< s.ip_addr();
danke
-
Das steht in der SOCKADDR_IN drin, da hast du als Member eine in_addr Struktur http://msdn.microsoft.com/en-us/library/windows/desktop/ms738571%28v=vs.85%29.aspx
-
danke
wenn ich aber jetzt
cout << addr.sin_addr.S_un.S_un_b.s_b1 << endl; cout << addr.sin_addr.S_un.S_un_b.s_b2 << endl; cout << addr.sin_addr.S_un.S_un_b.s_b3 << endl; cout << addr.sin_addr.S_un.S_un_b.s_b4 << endl;
mache dann zeigt er mir nichts an...
könntest du mir eventuell ein kleines beispiel geben nach dem er die verbindung akzeptiert ?clients[i]=accept(acceptSocket,NULL,NULL); ...
-
Du hast bei accept() als zweiten Parameter NULL angegeben, da muss die SOCKADDR_IN Struktur übergeben werden, wenn man die IP wissen will.
Schau dir accpet() mal an: http://msdn.microsoft.com/en-us/library/windows/desktop/ms737526%28v=vs.85%29.aspx
-
Danke habe es hinbekommen
int len = sizeof(struct sockaddr); clients[i] = accept(acceptSocket, (struct sockaddr *)&addr, &len); printf("IP: %s", inet_ntoa(addr.sin_addr));