VPN termux about China.net

server TCP

#include "SDL.h"
#include "SDL.h"
#include "SDL.h"

#include <EGL/egl.h>
#include <vector>
#include <GLES/gl.h>
#include <SDL2/SDL.h>
SDL_Window *window;
SDL_Renderer *renderer;
int done;

 #include <stdlib.h>

 #include <SDL/SDL_net.h>
 #include <stdlib.h>

 SDL_Surface *screen;
 TCPsocket server;

 void init_net (void)
 {
   IPaddress addr;
   if (SDLNet_Init () < 0)
     {
       printf ("ERR Net: %s\n", SDLNet_GetError ());
       exit (-1);
     }
   if (SDLNet_ResolveHost (&addr, NULL, 1234) < 0)
     {
       printf ("ERR ResolveHost: %s\n", SDLNet_GetError ());
       SDLNet_Quit ();
       exit (-1);
     }
   server = SDLNet_TCP_Open (&addr);
   if (server == NULL)
     {
       printf ("ERR TCP_Open: %s\n", SDLNet_GetError ());
       SDLNet_Quit ();
       exit (-1);
     }
 }

 int serv()
 {
   TCPsocket client = NULL;
   SDL_Rect *rect;
   int maxread;
   init_net ();
   printf ("Server-Socket ist offen\n");
   client = SDLNet_TCP_Accept (server);

   printf ("Client wurde akzeptiert\n");
   /* Schicke erstes Rechteck */
//   rect = new (SDL_Rect);
   rect =new (SDL_Rect);
   rect->x = 10;
   rect->y = 20;
   rect->w = 100;
   rect->h = 200;
   SDLNet_TCP_Send (client, rect, sizeof (SDL_Rect));

   maxread = SDLNet_TCP_Recv (client, rect, sizeof (SDL_Rect));
   printf ("I am Server. \n Read = %d\n", maxread);
   printf ("x = %d, y = %d, w = %d, h = %d\n",
     rect->x, rect->y, rect->w, rect->h);
//SDLNet_TCP_Close (client);
//SDLNet_TCP_Close (server);
    SDL_SetRenderDrawColor(renderer, 0xFF, 0, 0, 0xFF);
//  SDL_RenderFillRect(renderer, &rect);
 return 0;
 }

void
DrawChessBoard(SDL_Renderer * renderer)
{
    int row = 0,column = 0,x = 0;
    SDL_Rect rect, darea;

    /* Get the Size of drawing surface */
    SDL_RenderGetViewport(renderer, &darea);

    for ( ; row < 8; row++) {
        column = row%2;
        x = column;
        for ( ; column < 4+(row%2); column++) {
            SDL_SetRenderDrawColor(renderer, 0, 0, 0, 0xFF);

            rect.w = darea.w/8;
            rect.h = darea.h/8;
            rect.x = x * rect.w;
            rect.y = row * rect.h;
            x = x + 2;
     
            SDL_RenderFillRect(renderer, &rect);
         
        }
    }
}

void
loop()
{
        TCPsocket client = NULL;
//   SDL_Rect rect;
   int maxread;
   SDL_Rect rect;
  std::vector <SDL_Rect> v1(1);
//rect =new (SDL_Rect);

   rect.x = 10;
   rect.y = 20;
   rect.w = 100;
   rect.h = 200;
  v1.push_back(rect);
    SDL_Event e;
    while (SDL_PollEvent(&e)) {
        if (e.type == SDL_QUIT) {
            done = 1;
            return;
        }

        if ((e.type == SDL_KEYDOWN) && (e.key.keysym.sym == SDLK_ESCAPE)) {
            done = 1;
            return;
        }
   
           if (client = SDLNet_TCP_Accept (server) )
    {
   printf ("Client wurde akzeptiert\n");
   /* Schicke erstes Rechteck */

//   SDLNet_TCP_Send (client, &v1[1], v1.size());

//   maxread = SDLNet_TCP_Recv (client, &v1[1], v1.size());
   printf ("I am Server. \n Read = %d\n", maxread);

//   SDLNet_TCP_Close (client);
//   SDLNet_TCP_Close (server);
        SDL_SetRenderDrawColor(renderer, 0xFF, 0, 0, 0xFF);
             SDL_RenderFillRect(renderer, &v1[1]);
                         SDL_GL_SwapWindow(window);
       // v1.pop_back();

}
//    DrawChessBoard(renderer);
    }
    /* Got everything on rendering surface,
       now Update the drawing image on window screen */
         SDL_UpdateWindowSurface(window);  
}

int
main(int argc, char *argv[])
{
    SDL_Surface *surface;
    /*net initiaton*/
  init_net ();
    /* Enable standard application logging */
    SDL_LogSetPriority(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO);

    /* Initialize SDL */
    if (SDL_Init(SDL_INIT_VIDEO) != 0) {
        SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "SDL_Init fail : %s\n", SDL_GetError());
        return 1;
    }
    /* Create window and renderer for given surface */
    window = SDL_CreateWindow("Chess Board", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_OPENGL);
    if (!window) {
        SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Window creation fail : %s\n",SDL_GetError());
        return 1;
    }
    surface = SDL_GetWindowSurface(window);
    renderer = SDL_CreateSoftwareRenderer(surface);
    if (!renderer) {
        SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Render creation for surface fail : %s\n",SDL_GetError());
        return 1;
    }
    /* Clar the rendering surface with the specified color */
    SDL_SetRenderDrawColor(renderer, 0xFF, 0xFF, 0xFF, 0xFF);
    SDL_RenderClear(renderer);
    /* Draw the Image on rendering surface */
    done = 0;
    while (!done) {     
        loop();
    }
    SDL_Quit();
    return 0;
}

No comments:

Post a Comment