Miesiąc: Czerwiec 2011

Programy Sieciowy- przystępna teoria C++ // Tworzenie procesów potomnych dla Klienta (podłączanie wielu klientów do jednego serwera) // Telepraca // Strona białego domu zrobiona na drupalu // Opis bibliotek w C++ // Biblioteki programistyczne do pobrania

Przebieg połączenia TCP serwer-klient

Kod serwera i klienta:

#include <iostream.h>
#include <winsock2.h>

const unsigned int maxchars = 200; //maximum number of chars for the buffer (i/o)

//The client
void Client()
{
   char dest_ip[15]; //destination IP
   cout << „Destination IP: „;
   cin >> dest_ip;
   cout << endl;

   SOCKET go; //create the sending socket structure

   if(go = socket(AF_INET,SOCK_STREAM,0))
      cout << „— Sending socket created successfully!n”;
   else
   {
      cout << „Can’t create sending socket! Aborting!n”;
      WSACleanup();
      exit(0);
   }

   sockaddr_in target;

   target.sin_family = AF_INET;
   target.sin_port = htons(7979); //sending port
   target.sin_addr.s_addr = inet_addr(dest_ip);

   if(connect(go,(LPSOCKADDR)&target,sizeof(target)) == SOCKET_ERROR)
   {
      cout << „Can’t connect! Aborting!n”;
      WSACleanup();
      exit(0);
   }
   else
   {
      cout << „— Connected successfully!nn”;
      cout << „-| Enter 000 when you want to end the session!nn”;
         

      char buff[maxchars];

      while(buff[0] != '0′ || buff[1] != '0′ || buff[2] != '0′)
      {
         cin.getline(buff,maxchars);      
         cout << „Enter data: „;
         
         

         if(buff[0] != '0′ || buff[1] != '0′ || buff[2] != '0′)
            send(go,buff,sizeof(buff),0);
         else
         {
            send(go,buff,sizeof(buff),0);
            closesocket(go);
            cout << „-> Session closed!n”;
            WSACleanup();
            exit(0);
         }
      }

   }
}

void Server()
{
   SOCKET come;

   if(come = socket(AF_INET,SOCK_STREAM,0))
      cout << „— Receiving socket created successfully!n”;
   else
   {
      cout << „Can’t create receiving socket! Aborting!n”;
      WSACleanup();
      exit(0);
   }

   sockaddr_in addr; //the address structure for a TCP socket

   addr.sin_family = AF_INET; //Address family internet
   addr.sin_port = htons(7979); //Receiving port
   addr.sin_addr.s_addr = htonl(INADDR_ANY);

   if(bind(come,(LPSOCKADDR)&addr,sizeof(addr)) == SOCKET_ERROR)
   { //error
      cout << „Error binding! Aborting!n”;
      WSACleanup(); //unload WinSock
      exit(0); //quit
   }

   if(listen(come,1) == SOCKET_ERROR)
   { //error. unable to listen
      cout << „Error listening! Aborting!n”;
      closesocket(come);
      WSACleanup();
      exit(0);
   }
   else
   {
      SOCKET client; //socket handles to clients

      client = accept(come,NULL,NULL);
      
      if(client == INVALID_SOCKET)
      { //error accepting the connection
         cout << „Can’t accept connection! Aborting!n”;
         closesocket(come);
         WSACleanup();
         exit(0);
      }
      else
      {
         cout << endl;
         char buffer[maxchars]; //buffer for incomming messages

         while(buffer[0] != '0′ || buffer[1] != '0′ || buffer[2] != '0′)
         {
            buffer[0] = 0;
            buffer[1] = 0;
            buffer[2] = 0;

            recv(client,buffer,sizeof(buffer),0);

            if(buffer[0] != '0′ || buffer[1] != '0′ || buffer[2] != '0′)
            {
               if(strlen(buffer) > 0)
                  cout << „Received: ” << buffer << endl;
            }
            else
            {
               closesocket(come);
               cout << „-> Session closed!n” << endl;
               WSACleanup();
               exit(0);
            }
            

         }

      }
   }

}

void main()
{
   
   WSADATA w;

   if(WSAStartup(0x0202,&w))
   {
      cout << „Can’t initialize WinSock. Aborting!n”;
      exit(0);
   }
   else
      cout << „— WinSock initialized successfully!n”;

   if(w.wVersion != 0x0202)
   { //wrong version
      cout << „Wrong version.Aborting!n”;
      WSACleanup(); //Unload ws2_32.dll
      exit(0);
   }
   else
      cout << „— Version 2.2 accepted!n”;

   char o;
   cout << endl;
   while(o != '1′ && o!= '2′ && o != '3′)
   {
      cout << „1 – Run Servern”;
      cout << „2 – Run Clientn”;
      cout << „3 – Exitn”;
      cout << „Enter 1,2 or 3: „;
      cin >> o;
   }

   switch(o)
   {
   case '1′:
      Server();
      break;
   case '2′:
      Client();
      break;
   case '3′:
      exit(0);
      break;
   };
}

//

Umbraco

Umbraco – CMS od Microsoftu

Umbraco CMS – system CMS umożliwiający szybkie i łatwe tworzenie witryn sieci web i ułatwiający tworzenie złożonych aplikacji sieci web. Program Umbraco zawiera wielokrotnie nagradzane funkcje integracji i obsługuje w sposób macierzysty formanty niestandardowe i formanty użytkownika programu ASP.NET. Jest używany w ponad 60 000 aktywnych witryn sieci web, w tym Heinz.com, Peugeot.com i NAIAS.com, przez co można uznać tą technologię za sprawdzoną, stabilną i skalowalną. Program Umbraco należy zainstalować w katalogu głównym witryny sieci web.


MSDN -web developer