GetPeerName
-
Hi,
ich würde gerne über eine Socket Verbindung den PC Namen erhalten. Nur leider habe ich bis jetzt keine Funktion gefunden. : (Mit dieser Funktion kann ich beispielweise die peer IP Adresse und den peer Port erhalten.
BOOL iErr = m_sConnectSocket1.GetPeerName(sPeerAddress,iPeerPort);Hier nochmals die Frage:
Gibt es eine Möglichkeit den peer PC Namen rauszukriegen?Für die Antwort bedanke ich mich im Voraus.
Gruß Olaf
-
MFC?
-
siehe http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/getpeername_2.asp
vorher platform sdk downloaden
-
-
-

-
Man kann es ja mal versuchen

-
Sag lieber mal, ob's Dir was geholfen hat. Deswegen machen wir uns alle ja die Mühe.
-
Sorry, ich wollte nicht respektlos erscheinen.

Leider komme ich mit der vorgeschlagenen Funktion nicht zurecht (mangelnde Erfahrung?).

Ich habe inzwischen eine kleine Notlösung eingebaut. Ich ermittle den PC Namen direkt beim „Client“ und schicke dann den String über die Socketverbindung zum „Master“.
Natürlich wäre es super wen der Master dein Namen auch ermitteln könnte.Mein Code (vorgeschlagene Funktion):
//Die Nachricht vom Client wird empfangen char *pBuf = new char[1025]; int iBufSize = 1024; int iRcvd = m_sConnectSocket1.Receive(pBuf, iBufSize); //? SOCKET s = m_sConnectSocket1; SOCKADDR name; int namelen = sizeof(name); getpeername(s,&name,&namelen); name.sa_data; //Nur zum Debuggen name.sa_family; //Nur zum Debuggen //? CString strRecvd; pBuf[iRcvd] = '\0'; strRecvd = pBuf; delete [] pBuf;Diese Code steht in der „OnReceive“ Funktion in meiner Socket Klasse.
Fehler: ich empfange keinen PCNamen, sondern eine Ansamlung von „Sonderzeichen“
Was mach ich falsch?
Danke euch allen für die Mühe!
Gruß Olaf
-
Mit getpeername() kriegst du ja auch nur die IP raus.
Du solltest statt SOCKADDR lieber sockaddr_in nehmen.
Dann steht in name.sin_addr.s_addr die IP (nicht als String!).
Mit gethostbyaddr() kannste dir dann mittels der IP den hostname besorgen...
-
du machst falsch dass der text in wchar ankommt. du musst ihn in unicode umwandeln