Network.cpp 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #include "Network.h"
  2. #ifndef WIN32
  3. #include <iostream>
  4. #include <netdb.h>
  5. #include <signal.h>
  6. #endif
  7. #include <openssl/err.h>
  8. #include <openssl/ssl.h>
  9. #include <openssl/bio.h>
  10. // Starte Netzwerk
  11. void Network::Start( int maxClients )
  12. {
  13. #ifdef WIN32
  14. WSADATA lpwd;
  15. lpwd.iMaxSockets = maxClients;
  16. int fehler = WSAStartup( MAKEWORD( 2, 0 ), &lpwd );
  17. if( fehler != 0 )
  18. MessageBox( 0, "Win Sock 2.0 konnte nocht gestartet werden.", "Fehler", MB_ICONERROR );
  19. #else
  20. signal( SIGPIPE, SIG_IGN );
  21. #endif
  22. SSL_library_init();
  23. SSL_load_error_strings();
  24. }
  25. void Network::getHostName( char *name, int bufferLen )
  26. {
  27. gethostname( name, bufferLen );
  28. }
  29. char *Network::getHostAddresse()
  30. {
  31. char *addresse;
  32. char name[ 255 ] = "";
  33. getHostName( name, 255 );
  34. PHOSTENT hostinfo;
  35. hostinfo = gethostbyname( name );
  36. if( !hostinfo )
  37. {
  38. #ifdef WIN32
  39. MessageBox( 0, "Die Ip Addresse konnte nicht ermittelt werden.", "Fehler", MB_ICONERROR );
  40. #else
  41. std::cout << "Fehler: Die Ip Addresse konnte nicht ermittelt werden.";
  42. #endif
  43. }
  44. addresse = inet_ntoa( *( struct in_addr* )*hostinfo->h_addr_list );
  45. return addresse;
  46. }
  47. // Beende Netzwerk
  48. void Network::Exit()
  49. {
  50. #ifdef WIN32
  51. WSACleanup();
  52. #endif
  53. }