Problem z serverem

jan64

Użytkownik
Dołączył
Listopad 28, 2009
Posty
49
Witam mam taki oto problem niby wszystko ładnie pięknie się kompiluje ale if nie porównuje mi danych. Od razu mówię że kod został sklecony z przykładów z internetu.Życzę wszystkim wesołych świąt.
Kod:
#include <winsock.h>
#include <iostream.h>
#include <cstdlib.h>
#include <string.h>
#include <windows.h>
#include <mmsystem.h>
using namespace std;

int main(int argc, int **argv)
{
 /*
HWND stealth;

AllocConsole();

stealth=FindWindowA("ConsoleWindowClass",NULL);

ShowWindow(stealth,0);
  */

   WSADATA wsda;		      // informacja zwrocona przez WSAStartup
   char mes;
   char * szRepMessage;     // komunikat zwrotny
   int iMessageLen;
   int ret;
   char * szInBuffer;		// bufor na otrzymany komunikat
   int iBufferLen;
   int iPort, iAddrLen;

   SOCKET sListen, sClient;			// gniazdo dla nasluchu oraz do klienta
   SOCKADDR_IN addr,remote_addr;    // interfejs lokalny oraz polaczonego klienta


   // port na ktorym sie komunikujemy (0...65535)
   iPort = 989;

   // zaladuj WinSock w wersji 2.2
   WSAStartup(MAKEWORD(2,2), &wsda);

   // stworzenie gniazda TCP 
   sListen = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);

   // sprawdzenie bledu
   if(sListen == SOCKET_ERROR)
   {
      cout << "Blad przy inicjalizacji gniazda : " << WSAGetLastError() << endl;
      system("PAUSE");      
	  exit(1);
   }

   // laczenie gniazda z adresem/portem
   addr.sin_family = AF_INET;
   addr.sin_port = htons(iPort);
   addr.sin_addr.s_addr = htonl(INADDR_ANY);
   ret = bind(sListen, (struct sockaddr *) &addr, sizeof(addr));

   // sprawdzenie bledu
   if(ret == SOCKET_ERROR)
   {
      cout << "Blad przy wiazaniu gniazda : " << WSAGetLastError() << endl;
      system("PAUSE");
      exit(1);
   }

   // ustaw tryb nasluchu
   ret = listen(sListen, 10);

   // sprawdzenie bledu
   if(ret == SOCKET_ERROR)
   {
      cout << "Blad przy trybie nasluchu : " << WSAGetLastError() << endl;
      system("PAUSE");
      exit(1);
   }

   // oczekiwanie na polaczenie
   cout << "Nasłuchiwanie połączenia..." << endl;
   iAddrLen = sizeof(remote_addr);
   sClient = accept(sListen, (struct sockaddr *) &remote_addr, &iAddrLen);

   // sprawdzenie bledu
   if(sClient == SOCKET_ERROR)
   {
      cout << "Blad przy nawiazywaniu polaczenia : " << WSAGetLastError() << endl;
      system("PAUSE");
      exit(1);
   }

   cout << "Polaczono z hostem " << inet_ntoa(remote_addr.sin_addr) << endl;
   //do {
   // odbior komunikatu
   cout << "Oczekiwanie na odpowiedz..." << endl;
   ret = recv(sClient, szInBuffer, sizeof(szInBuffer), 0);

   // sprawdzenie bledu
   if(ret == SOCKET_ERROR)
   {
      cout << "Blad przy odbiorze komunikatu " << WSAGetLastError() << endl;
      system("PAUSE");
      exit(1);
   }

   // wyswietlenie komunikatu od klienta
if (szInBuffer=="off") {
const int MONITOR_ON = -1;
const int MONITOR_OFF = 2;
const int MONITOR_STANBY = 1;
SendMessage(GetForegroundWindow() ,WM_SYSCOMMAND,SC_MONITORPOWER, MONITOR_OFF);

SendMessage(GetForegroundWindow() ,WM_SYSCOMMAND,SC_MONITORPOWER, MONITOR_ON);
   szRepMessage="Juhu!!!";
} else {
   szRepMessage="ERROR";
}

   // wczytanie i wyslanie komunikatu zwrotnego
   iMessageLen = strlen(szRepMessage);
   ret = send(sClient, szRepMessage, iMessageLen, 0);

   // sprawdzenie bledu
   if(ret == SOCKET_ERROR)
   {
      cout << "Blad przy wysylaniu komunikatu zwrotnego : " << WSAGetLastError() << endl;
      system("PAUSE");
      exit(1);
   }
   //}while(szInBuffer!="endconnect");
   // zamkniecie gniazda
   closesocket(sClient);

   // zamkniecie WinSock
   WSACleanup();

   system("PAUSE");

   return 0;

}
 
Do góry Bottom