what am I doing wrong
server code:
#include <SDL.h>
#include <SDL/SDL_net.h>
#include <stdlib.h>
#include <conio.h>
#define Psize 1024
SDL_Surface *screen;
TCPsocket server;
void init_sdl (void)
{
if (SDL_Init (SDL_INIT_VIDEO) < 0)
exit (-1);
atexit (SDL_Quit);
}
void init_net (void)
{
IPaddress addr;
if (SDLNet_Init () < 0)
{
printf ("ERR Net: %s\n", SDLNet_GetError ());
exit (-1);
}
if (SDLNet_ResolveHost (&addr, NULL, 2210) < 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);
}
}
#ifdef _WIN32
#undef main
#endif
int main (void)
{
TCPsocket client = NULL;
SDL_Rect *rect;
int maxread;
init_sdl ();
init_net ();
SDLNet_SocketSet set;
printf ("Server-Socket ist offen\n");
while (client == NULL)
{
/* eine Sekunde warten */
SDL_Delay (1000);
client = SDLNet_TCP_Accept (server);
}
set = SDLNet_AllocSocketSet (1);if(!set){exit(0);}
if(SDLNet_TCP_AddSocket (set, client)!=1){exit(0);};
printf ("Client wurde akzeptiert\n");
/* Schicke erstes Rechteck */
rect = (SDL_Rect *)malloc (sizeof (SDL_Rect));
rect->x = 10;
rect->y = 20;
rect->w = 100;
rect->h = 200;
char data[Psize];
bool check=false;
char d[Psize];
bool g=false;
bool s=false;
char * datab="__________________";
SDLNet_TCP_Send (client, d, Psize);
char input;
system("color 5a");
while(true){
check=!check;
//char g[12];
//itoa(rand(),g,10);
//input=game();
SDLNet_CheckSockets(set,0);
//printf("lol");
//printf("%i",check);
sprintf(d,"ping%i\n",rand());
if (SDLNet_SocketReady (client))
{
if(check||g){
g=false;
s=true;
maxread = SDLNet_TCP_Recv (client, &data, sizeof(data));
//system("color 4a");
//printf("data:%s\n",data);
//char* ki;
//sprintf(ki,"color %i%i",(rand()%9)+1,(rand()%9)+1);
//system(ki);
//data;
printf("\n%s\n",data);
}
if(!check||s){
s=false;
g=true;
char buf[Psize];
static int pa=0;
pa++;
sprintf(buf,"pong%i",pa);
char b[Psize];
sprintf(b,"%c",input);
//printf(b);
SDLNet_TCP_Send (client, buf, sizeof (buf));}
}
printf(":");
//SDL_Delay(350);
//printf("data:\t%s\n",datab);
//datab="__________________";
}
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);
return 0;
}
client code:
#include <SDL.h>
#include <SDL/SDL_net.h>
#include <stdlib.h>
#include <stdio.h>
#ifdef _WIN32
#undef main
#endif
#define Psize 1024
bool field[9];
#include "draw.h"
int main (void)
{
for (int i=0;i<9;i++){field=false;}
IPaddress address;
TCPsocket sock_server;
SDLNet_SocketSet set;
if(SDL_Init (0) ==-1)
{
printf ("SDL_Init: %s\n", SDL_GetError ());
exit (1);
}
if(SDLNet_Init () ==-1)
{
printf ("SDLNet_Init: %s\n", SDLNet_GetError ());
exit(1);
}
if (SDLNet_ResolveHost (&address, "95.174.229.136", 2210) == -1)
{
printf ("SDLNet_ResolveHost: %s\n", SDLNet_GetError ());
SDLNet_Quit ();
exit (1);
}
sock_server = SDLNet_TCP_Open (&address);
if (!sock_server)
{
printf ("SDLNet_TCP_Open: %s\n", SDLNet_GetError ());
SDLNet_Quit ();
exit (1);
}
set = SDLNet_AllocSocketSet (1);
printf ("Init finished. Connected to server. Send Data after 5 Seconds...\n");
if (SDLNet_TCP_AddSocket (set, sock_server )!= 1)
{
printf ("SDLNet_TCP_AddSocket: %s\n", SDLNet_GetError ());
exit (1);
}
/*SDL_Delay (5000);
*/
printf("._.");
char data[Psize];
char buf[Psize];
bool c=false;
bool s=false;
bool g=false;
//SDLNet_TCP_Send (sock_server,"loool", Psize);
//time_t start = time(NULL) * 1000;
system("color e1");
while(true){
//int start=SDL_GetTicks();
SDLNet_CheckSockets (set, 0);
//printf("%i",start);
c=!c;
//printf("%ics\n",SDLNet_SocketReady(sock_server));
if(SDLNet_SocketReady(sock_server)){
if(!c||g){
SDLNet_TCP_Recv (sock_server, &data, sizeof(data));
s=true;
g=true;
//printf("data got\n");
printf("\n%s\n",data);
}
if(c||s){
s=false;
g=true;
static int pa=0;
pa++;
sprintf(buf,"pong%i",pa);
SDLNet_TCP_Send (sock_server, buf, sizeof(buf));
}
}
printf(":");
//SDL_Delay(12);
//draw(data[0]);
//printf("version 1.1");
}
SDLNet_TCP_Close (sock_server);
return 0;
}