Advertisement
Combreal

multiSDL01.cpp

Nov 1st, 2019
329
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.08 KB | None | 0 0
  1. //server
  2. #include <iostream>
  3. #include <string>
  4. #include <winsock2.h>
  5. #pragma comment(lib, "ws2_32.lib")
  6.  
  7. using namespace std;
  8.  
  9. int main()
  10. {
  11.     WSADATA WSAData;
  12.  
  13.     SOCKET server, client;
  14.  
  15.     SOCKADDR_IN serverAddr, clientAddr;
  16.  
  17.     WSAStartup(MAKEWORD(2, 0), &WSAData);
  18.     server = socket(AF_INET, SOCK_STREAM, 0);
  19.  
  20.     serverAddr.sin_addr.s_addr = INADDR_ANY;
  21.     serverAddr.sin_family = AF_INET;
  22.     serverAddr.sin_port = htons(5555);
  23.  
  24.     bind(server, (SOCKADDR *)&serverAddr, sizeof(serverAddr));
  25.     listen(server, 0);
  26.  
  27.     cout << "Listening for incoming connections..." << endl;
  28.  
  29.     char buffer[1024];
  30.     int clientAddrSize = sizeof(clientAddr);
  31.     string responce = "";
  32.     if ((client = accept(server, (SOCKADDR *)&clientAddr, &clientAddrSize)) != INVALID_SOCKET)
  33.     {
  34.         cout << "Client joined" << endl;
  35.         while (responce != "quit")
  36.         {
  37.             if (recv(client, buffer, sizeof(buffer), 0) > 0)
  38.             {
  39.                 cout << buffer << endl;
  40.                 memset(buffer, 0, sizeof(buffer));
  41.             }
  42.             else
  43.             {
  44.                 responce = "quit";
  45.             }
  46.             //getline(cin, responce);
  47.             //send(client, responce.c_str(), sizeof(responce), 0);
  48.         }
  49.  
  50.         closesocket(client);
  51.         cout << "Client disconnected." << endl;
  52.     }
  53.  
  54.     system("pause");
  55. }
  56.  
  57.  
  58.  
  59. //client
  60. #include <SDL.h>
  61. #include <iostream>
  62. #include <algorithm>
  63. #include <winsock2.h>
  64. #include <Ws2tcpip.h>
  65. #pragma comment(lib, "ws2_32.lib")
  66. using namespace std;
  67.  
  68. int main(int arc, char ** argv)
  69. {
  70.     SDL_Window* pWindow = NULL;
  71.     SDL_Event event;
  72.     SDL_Renderer *pRenderer = NULL;
  73.     SDL_Texture* pTexture = NULL;
  74.     SDL_Surface* pSprite = NULL;
  75.     SDL_Rect dest;
  76.     string talk = "";
  77.     char responce[1024];
  78.     WSADATA WSAData;
  79.     SOCKET server;
  80.     SOCKADDR_IN addr;
  81.     WSAStartup(MAKEWORD(2, 0), &WSAData);
  82.     server = socket(AF_INET, SOCK_STREAM, 0);
  83.     InetPton(AF_INET, "192.168.1.16", &addr.sin_addr.s_addr);
  84.     addr.sin_family = AF_INET;
  85.     addr.sin_port = htons(5555);
  86.     connect(server, (SOCKADDR *)&addr, sizeof(addr));
  87.     //if (connect(server, (SOCKADDR *)&addr, sizeof(addr))>0)
  88.     {
  89.         bool cont = true;
  90.         int CurrentTime = 0, seconds = 0, PassedTime = 0;
  91.         if (SDL_Init(SDL_INIT_VIDEO) < 0)
  92.         {
  93.             cout << "SDL could not initialize! SDL_Error: " << SDL_GetError() << endl;
  94.         }
  95.         else
  96.         {
  97.             pWindow = SDL_CreateWindow("SDL2 Test", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, SDL_WINDOW_SHOWN);
  98.         }
  99.         pRenderer = SDL_CreateRenderer(pWindow, -1, SDL_RENDERER_ACCELERATED);
  100.         if (pRenderer)
  101.         {
  102.             pSprite = SDL_LoadBMP("data/deck/background.bmp");
  103.             if (pSprite)
  104.             {
  105.                 pTexture = SDL_CreateTextureFromSurface(pRenderer, pSprite);
  106.                 if (pTexture)
  107.                 {
  108.                     dest = { 0, 0, 800, 600 };
  109.                     SDL_RenderCopy(pRenderer, pTexture, NULL, &dest);
  110.                     SDL_RenderPresent(pRenderer);
  111.                 }
  112.                 else
  113.                 {
  114.                     cout << "Couldn't display image : " << SDL_GetError() << endl;
  115.                 }
  116.             }
  117.             else
  118.             {
  119.                 cout << "Sprite loading error : " << SDL_GetError() << endl;
  120.             }
  121.         }
  122.         else
  123.         {
  124.             cout << "Couldn't create renderer : " << SDL_GetError() << endl;
  125.         }
  126.         while (cont != 0)
  127.         {
  128.             while (SDL_PollEvent(&event))
  129.             {
  130.                 CurrentTime = SDL_GetTicks();
  131.                 if (CurrentTime - PassedTime > 200)
  132.                 {
  133.                     switch (event.type)
  134.                     {
  135.                     case SDL_KEYDOWN:
  136.                         if (event.key.keysym.scancode == SDL_SCANCODE_ESCAPE)
  137.                         {
  138.                             cout << "Quit" << endl;
  139.                             cont = 0;
  140.                         }
  141.                         else if (event.key.keysym.scancode == SDL_SCANCODE_1)
  142.                         {
  143.                             talk = "1";
  144.                             cout << "1" << endl;
  145.                         }
  146.                         else if (event.key.keysym.scancode == SDL_SCANCODE_2)
  147.                         {
  148.                             talk = "2";
  149.                             cout << "2" << endl;
  150.                         }
  151.                         break;
  152.                     case SDL_QUIT:
  153.                         cont = false;
  154.                         break;
  155.                     default:
  156.                         break;
  157.                     }
  158.                     PassedTime = CurrentTime;
  159.                 }
  160.             }
  161.             send(server, talk.c_str(), sizeof(talk), 0);   
  162.             SDL_RenderClear(pRenderer);
  163.             SDL_RenderCopy(pRenderer, pTexture, NULL, &dest);
  164.             SDL_RenderPresent(pRenderer);
  165.             CurrentTime = SDL_GetTicks();
  166.         }
  167.     }
  168.     //delse
  169.     {
  170.         cout << "Counldn't connect to server." << endl;
  171.         system("pause");
  172.     }
  173.     SDL_DestroyTexture(pTexture);
  174.     SDL_DestroyRenderer(pRenderer);
  175.     SDL_FreeSurface(pSprite);
  176.     return 0;
  177. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement