Advertisement
Guest User

Untitled

a guest
Jan 29th, 2015
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.96 KB | None | 0 0
  1. #include <iostream>
  2. #include <winsock2.h>
  3.  
  4. #pragma comment(lib,"ws2_32.lib")
  5.  
  6. int main()
  7. {
  8. SetConsoleTitleA( "Serwer - Piotr Bator" ); // nazwa belki gónej okna
  9.  
  10. std::cout<<"Zdalne zamykanie systemow operacyjnych\r\n";
  11. std::cout<<"Piotr Bator\r\n";
  12. std::cout<<"------------------------------------------\r\n";
  13. std::cout<<"SERWER\r\n";
  14. std::cout<<"------------------------------------------\r\n";
  15.  
  16. WSADATA WsaDat;// uruchamiamy winsocka
  17. if(WSAStartup(MAKEWORD(2,2),&WsaDat)!=0) //sprawdzamy czy wszystko z nim ok
  18. {
  19. std::cout<<"WSA - Błąd Ładownia WINOSCK!\r\n"; // jak nie ok to wyswietlamy to i zamykamy
  20. WSACleanup();
  21. system("PAUSE");
  22. return 0;
  23. }
  24.  
  25. SOCKET Socket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); // ustawiamy gniazdo na protokuł TCP
  26. if(Socket==INVALID_SOCKET)
  27. {
  28. std::cout<<"Błąd tworzenia gniazda!\r\n";// jak cos z instalacja jest nie tak to wywala blad i wylanczamy
  29. WSACleanup();
  30. system("PAUSE");
  31. return 0;
  32. }
  33.  
  34. SOCKADDR_IN serverInf;
  35. serverInf.sin_family=AF_INET;
  36. serverInf.sin_addr.s_addr=INADDR_ANY;
  37. serverInf.sin_port=htons(8888); // ustawienie portu
  38.  
  39. if(bind(Socket,(SOCKADDR*)(&serverInf),sizeof(serverInf))==SOCKET_ERROR) //bindowanie gniazda
  40. {
  41. std::cout<<"Bład bindowania gniazda!\r\n"; // jak cos nie tak to wywala to
  42. WSACleanup();
  43. system("PAUSE");
  44. return 0;
  45. }
  46.  
  47. listen(Socket,1); // nasluchiwanie
  48.  
  49. SOCKET TempSock=SOCKET_ERROR;
  50. while(TempSock==SOCKET_ERROR) // sprawdzanie czy jest wszystko okej
  51. {
  52. std::cout<<"Oczekuje na polaczenie klienta...\r\n"; //jak jest okej to wyswietla to
  53. TempSock=accept(Socket,NULL,NULL); // a jak sie ktos podlaczy to dolaczamy klienta
  54. }
  55. Socket=TempSock; // porównujemy nazwe gniazd
  56.  
  57. std::cout<<"Klient podlaczony!\r\n\r\n";
  58.  
  59. char *szMessage1="Polaczyles sie z Serwerem!\r\n"; //zmienne z wiadomosciami do przeslania
  60. char *szMessage2="Oczekuj na działanie serwera!\r\n";
  61. char *szMessage3="close";
  62. char *szMessage4="end";
  63. char komenda[128];
  64.  
  65. send(Socket,szMessage1,strlen(szMessage1),0); // wysyla zmienna szMessage1
  66. send(Socket,szMessage2,strlen(szMessage2),0); // tu podbnie
  67.  
  68. std::cout<<"Wyslij 'zamknij' jezeli chcesz wylaczyc komputer ktory jest podlaczony\r\n";
  69. std::cout<<"Inna komenda wylaczy serwer\r\n\r\n";
  70.  
  71. std::cin>>komenda; // wpisujemy komende
  72. if(strcmp(komenda, "zamknij") == 0) { // jak wpiszemu zakmnij
  73. send(Socket,szMessage3,strlen(szMessage3),0); // to wysyla zmienna 3
  74. std::cout<<"Wylaczono komputer klienta\r\n\r\n"; // i to wyswietla
  75. }else{
  76. send(Socket,szMessage4,strlen(szMessage4),0); // jak cos innego to wysyla zmienna 4
  77. std::cout<<"Nic nie wykonano!\r\n\r\n"; // i to wypisuje
  78. }
  79.  
  80. system("pause");
  81. std::cout<<"Rozlanczanie!\r\n\r\n";
  82. // Shutdown our socket
  83. shutdown(Socket,SD_SEND); // wylacza gniazda
  84.  
  85. // Close our socket entirely
  86. closesocket(Socket); // czysci po gniazdach
  87.  
  88. // Cleanup Winsock
  89. WSACleanup(); // wylacza winsocka
  90. system("PAUSE");
  91. return 0;
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement