Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <winsock2.h>
- #pragma comment(lib,"ws2_32.lib")
- int main()
- {
- SetConsoleTitleA( "Serwer - Piotr Bator" ); // nazwa belki gónej okna
- std::cout<<"Zdalne zamykanie systemow operacyjnych\r\n";
- std::cout<<"Piotr Bator\r\n";
- std::cout<<"------------------------------------------\r\n";
- std::cout<<"SERWER\r\n";
- std::cout<<"------------------------------------------\r\n";
- WSADATA WsaDat;// uruchamiamy winsocka
- if(WSAStartup(MAKEWORD(2,2),&WsaDat)!=0) //sprawdzamy czy wszystko z nim ok
- {
- std::cout<<"WSA - Błąd Ładownia WINOSCK!\r\n"; // jak nie ok to wyswietlamy to i zamykamy
- WSACleanup();
- system("PAUSE");
- return 0;
- }
- SOCKET Socket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); // ustawiamy gniazdo na protokuł TCP
- if(Socket==INVALID_SOCKET)
- {
- std::cout<<"Błąd tworzenia gniazda!\r\n";// jak cos z instalacja jest nie tak to wywala blad i wylanczamy
- WSACleanup();
- system("PAUSE");
- return 0;
- }
- SOCKADDR_IN serverInf;
- serverInf.sin_family=AF_INET;
- serverInf.sin_addr.s_addr=INADDR_ANY;
- serverInf.sin_port=htons(8888); // ustawienie portu
- if(bind(Socket,(SOCKADDR*)(&serverInf),sizeof(serverInf))==SOCKET_ERROR) //bindowanie gniazda
- {
- std::cout<<"Bład bindowania gniazda!\r\n"; // jak cos nie tak to wywala to
- WSACleanup();
- system("PAUSE");
- return 0;
- }
- listen(Socket,1); // nasluchiwanie
- SOCKET TempSock=SOCKET_ERROR;
- while(TempSock==SOCKET_ERROR) // sprawdzanie czy jest wszystko okej
- {
- std::cout<<"Oczekuje na polaczenie klienta...\r\n"; //jak jest okej to wyswietla to
- TempSock=accept(Socket,NULL,NULL); // a jak sie ktos podlaczy to dolaczamy klienta
- }
- Socket=TempSock; // porównujemy nazwe gniazd
- std::cout<<"Klient podlaczony!\r\n\r\n";
- char *szMessage1="Polaczyles sie z Serwerem!\r\n"; //zmienne z wiadomosciami do przeslania
- char *szMessage2="Oczekuj na działanie serwera!\r\n";
- char *szMessage3="close";
- char *szMessage4="end";
- char komenda[128];
- send(Socket,szMessage1,strlen(szMessage1),0); // wysyla zmienna szMessage1
- send(Socket,szMessage2,strlen(szMessage2),0); // tu podbnie
- std::cout<<"Wyslij 'zamknij' jezeli chcesz wylaczyc komputer ktory jest podlaczony\r\n";
- std::cout<<"Inna komenda wylaczy serwer\r\n\r\n";
- std::cin>>komenda; // wpisujemy komende
- if(strcmp(komenda, "zamknij") == 0) { // jak wpiszemu zakmnij
- send(Socket,szMessage3,strlen(szMessage3),0); // to wysyla zmienna 3
- std::cout<<"Wylaczono komputer klienta\r\n\r\n"; // i to wyswietla
- }else{
- send(Socket,szMessage4,strlen(szMessage4),0); // jak cos innego to wysyla zmienna 4
- std::cout<<"Nic nie wykonano!\r\n\r\n"; // i to wypisuje
- }
- system("pause");
- std::cout<<"Rozlanczanie!\r\n\r\n";
- // Shutdown our socket
- shutdown(Socket,SD_SEND); // wylacza gniazda
- // Close our socket entirely
- closesocket(Socket); // czysci po gniazdach
- // Cleanup Winsock
- WSACleanup(); // wylacza winsocka
- system("PAUSE");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement