Network.cpp 1.2 KB

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