Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
May 29, 2006, 3:28:41 PM (18 years ago)
Author:
patrick
Message:

trunk: merged the network branche back to trunk.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/subprojects/network/network_unit_test.cc

    r6424 r7954  
    99#include "network_socket.h"
    1010#include "server_socket.h"
     11#include "udp_server_socket.h"
     12#include "udp_socket.h"
    1113#include "network_stream.h"
    1214#include "synchronizeable.h"
    1315#include "converter.h"
     16#include "state.h"
     17#include "shared_network_data.h"
     18#include "message_manager.h"
     19#include "network_log.h"
    1420
    1521#include "simple_sync.h"
     
    3642int testSocket(int argc, char** argv)
    3743{
    38   IPaddress ip;
    39   SDLNet_ResolveHost(&ip, "127.0.0.1", 9999);
    40   ServerSocket server;
    41   server.listen(9999);
    42 
    43   NetworkSocket* client1 = new NetworkSocket(ip);
    44 
    45   NetworkSocket* server1 = server.getNewSocket();
    46 
    47   NetworkSocket* client2 = new NetworkSocket(ip);
    48 
    49   NetworkSocket* server2 = server.getNewSocket();
     44  UdpServerSocket server(9999);
     45
     46  NetworkSocket* client1 = new UdpSocket("localhost", 9999);
     47
     48  NetworkSocket* server1 = NULL;
     49  while ( server1 == NULL )
     50  {
     51    server.update();
     52    server1 = server.getNewSocket();
     53  }
     54 
     55  assert( server1->isOk() );
     56
     57  NetworkSocket* client2 = new UdpSocket("localhost", 9999);
     58
     59  NetworkSocket* server2 = NULL;
     60  while ( server2 == NULL )
     61  {
     62    server.update();
     63    server2 = server.getNewSocket();
     64  }
    5065
    5166  char buf[1024];
     
    7085  n = server2->writePacket((byte*)str4, strlen(str4)+1);
    7186  printf("%d bytes send from server2\n", n);
    72   SDL_Delay(1000);
     87  SDL_Delay(10);
     88 
     89  server.update();
    7390
    7491  printf("read from server1\n");
     
    103120
    104121  printf("data: '%s'\n", buf);
     122 
     123 
     124  //22222222222222222222222222222222222222222
     125  n = client1->writePacket((byte*)str1, strlen(str1)+1);
     126  printf("%d bytes send from client1\n", n);
     127  n = server1->writePacket((byte*)str2, strlen(str2)+1);
     128  printf("%d bytes send from server1\n", n);
     129  n = client2->writePacket((byte*)str3, strlen(str3)+1);
     130  printf("%d bytes send from client2\n", n);
     131  n = server2->writePacket((byte*)str4, strlen(str4)+1);
     132  printf("%d bytes send from server2\n", n);
     133  SDL_Delay(10);
     134 
     135  server.update();
     136
     137  printf("read from server1\n");
     138  n = server1->readPacket((byte*)buf, 1024);
     139  printf("read %d bytes\n", n);
     140  if (n<0)
     141    return -1;
     142
     143  printf("data: '%s'\n", buf);
     144
     145  printf("read from server2\n");
     146  n = server2->readPacket((byte*)buf, 1024);
     147  printf("read %d bytes\n", n);
     148  if (n<0)
     149    return -1;
     150
     151  printf("data: '%s'\n", buf);
     152
     153  printf("read from client1\n");
     154  n = client1->readPacket((byte*)buf, 1024);
     155  printf("read %d bytes\n", n);
     156  if (n<0)
     157    return -1;
     158
     159  printf("data: '%s'\n", buf);
     160
     161  printf("read from client2\n");
     162  n = client2->readPacket((byte*)buf, 1024);
     163  printf("read %d bytes\n", n);
     164  if (n<0)
     165    return -1;
     166
     167  printf("data: '%s'\n", buf);
    105168
    106169  //sending bigger packets than 255 is not supported
    107 
     170#if 0
    108171  printf("try to send more than 255 bytes\n");
    109172  printf("result: %d\n", client1->writePacket((byte*)buf, 1000));
     
    113176  printf("try to read with a too small buffer\n");
    114177  printf("result: %d\n", client1->readPacket((byte*)buf, strlen(str1)));
    115 
     178#endif
     179
     180  delete client1;
     181  delete client2;
     182  delete server1;
     183  delete server2;
     184 
    116185  return 0;
    117186}
     
    124193  printf("=================\n");
    125194
    126   Synchronizeable* clientSync = new SimpleSync("Client\0");
    127   Synchronizeable* serverSync = new SimpleSync("Server\0");
     195  Synchronizeable* clientSync = new SimpleSync( std::string("Client") );
     196  Synchronizeable* serverSync = new SimpleSync( std::string("Server") );
    128197
    129198  unsigned int port = 9999;
     
    144213  if(error == -1)
    145214    printf("\n\nerror on address resolution, program inconsistancy\n\n");
    146   nm->establishConnection(ip, *clientSync);
     215  nm->establishConnection("localhost", port);
     216  nm->connectSynchronizeable( *clientSync );
    147217  /* adding some break for connection setup */
    148218  SDL_Delay(20);
     
    151221  for( int i = 0; i < 3; i++)
    152222  {
    153     nm->synchronize();
     223    nm->synchronize( 1000 );
    154224    /* simulate the network delay */
    155225    SDL_Delay(50);
     
    168238}
    169239
    170 
     240bool testCB( MessageId messageId, byte * data, int dataLength, void * someData, int userId )
     241{
     242  printf("GOT MESSAGE: %s\n", data);
     243  return true;
     244}
    171245
    172246/**
     
    178252int startServer(int argc, char** argv)
    179253{
    180   if( argc <= 2)
    181   {
    182     printf(" Wrong arguments try following notations:\n");
    183     printf("   --server [port number]\n");
    184     return 0;
    185   }
    186 
    187   int port = atoi(argv[2]);
    188   printf("Starting Server on port %i\n", port);
     254
     255
     256  State::setOnline(true);
     257  SharedNetworkData::getInstance()->setGameServer( true );
     258  printf("Starting Server on port %i\n", 9999);
    189259
    190260  NetworkManager* netMan = NetworkManager::getInstance();
    191   Synchronizeable* ss = new SimpleSync("Server\0");
    192 
    193   netMan->createServer(/**ss, */port);
     261 
     262  netMan->initialize();
     263 
     264  netMan->createServer(/**ss, */ 9999);
     265 
     266  SimpleSync* ss = new SimpleSync("Server");
     267  ss->setSynchronized( true );
     268 
     269  NetworkLog::getInstance()->listen( 8888 );
     270
     271  //MessageManager::getInstance()->initUser( 1 );
     272  MessageManager::getInstance()->registerMessageHandler( TESTMESSAGEID, testCB, NULL );
     273 
    194274  SDL_Delay(20);
    195275
    196276  for(;;)
    197277  {
    198     netMan->synchronize();
    199     SDL_Delay(1000);
     278    MessageManager::getInstance()->sendMessage( TESTMESSAGEID, (byte*)"server to client", 18, RT_ALL, 0, MP_HIGHBANDWIDTH );
     279    netMan->synchronize( 100 );
     280    SDL_Delay(100);
     281    ss->debug();
    200282  }
    201283
     
    210292int startClient(int argc, char** argv)
    211293{
     294
     295
     296  State::setOnline(true);
     297  NetworkManager* netMan = NetworkManager::getInstance();
     298 
     299
     300  netMan->initialize();
     301 
     302  std::string host;
     303 
     304  if ( argc > 2 )
     305    host = argv[2];
     306  else
     307    host = "localhost";
     308 
     309  netMan->establishConnection(host, 9999);
     310 
     311//  SimpleSync* ss = new SimpleSync("SimpleSync");
     312//  ss->setSynchronized( true );
     313//  netMan->connectSynchronizeable( *ss );
     314 
     315  NetworkLog::getInstance()->listen( 7777 );
     316
     317  SimpleSync * ss = NULL;
     318 
     319  //MessageManager::getInstance()->initUser( 0 );
     320  MessageManager::getInstance()->registerMessageHandler( TESTMESSAGEID, testCB, NULL );
     321 
     322  for(;;)
     323  {
     324    netMan->synchronize( 100 );
     325    MessageManager::getInstance()->sendMessage( TESTMESSAGEID, (byte*)"client to server", 18, RT_ALL, 0, MP_HIGHBANDWIDTH );
     326    ss = dynamic_cast<SimpleSync*>(ClassList::getObject( "Server", CL_SIMPLE_SYNC ) );
     327    SDL_Delay(100);
     328    if (ss)
     329      ss->debug();
     330  }
     331
     332
     333  delete netMan;
     334  delete ss;
     335
     336  return 0;
     337}
     338
     339
     340
     341int startListen(int argc, char** argv)
     342{
    212343  if( argc < 3)
    213344  {
    214345    printf(" Wrong arguments try following notations:\n");
    215     printf("   --client [server ip] [port number]\n");
    216     printf("   --client [server name] [port number]\n");
     346    printf("   --listen [server ip] [port number]\n");
     347    printf("   --listen [server name] [port number]\n");
    217348    return 0;
    218349  }
     
    228359
    229360  NetworkManager* netMan = NetworkManager::getInstance();
    230   Synchronizeable* ss = new SimpleSync("Client\0");
    231 
    232   netMan->establishConnection((const char*)"localhost", port/*,ip, *ss*/);
     361  Synchronizeable* ss = new SimpleSync("SimpleSync\0");
     362
     363  netMan->establishConnection( name, port );
     364  netMan->connectSynchronizeable( *ss );
    233365
    234366  for(;;)
    235367  {
    236     netMan->synchronize();
    237     SDL_Delay(500);
     368    netMan->synchronize( 1000 );
     369    SDL_Delay(10);
    238370  }
    239371
     
    245377}
    246378
    247 
    248 
    249 int startListen(int argc, char** argv)
    250 {
    251   if( argc < 3)
    252   {
    253     printf(" Wrong arguments try following notations:\n");
    254     printf("   --listen [server ip] [port number]\n");
    255     printf("   --listen [server name] [port number]\n");
    256     return 0;
    257   }
    258 
    259   char* name = argv[2];
    260   int port = atoi(argv[3]);
    261   printf("Connecting to %s, on port %i\n", name, port);
    262 
    263   IPaddress ip;
    264   int error = SDLNet_ResolveHost(&ip, name, port);
    265   if(error == -1)
    266     printf("\n\nerror on address resolution, program inconsistancy\n\n");
    267 
    268   NetworkManager* netMan = NetworkManager::getInstance();
    269   Synchronizeable* ss = new ReadSync("WriteSync\0");
    270 
    271   netMan->establishConnection(ip, *ss);
    272 
    273   for(;;)
    274   {
    275     netMan->synchronize();
    276     SDL_Delay(10);
    277   }
    278 
    279 
    280   delete netMan;
    281   delete ss;
    282 
    283   return 0;
    284 }
    285 
    286379void testFloatConverter(float f)
    287380{
     381#if 0
    288382  char* s = Converter::floatToBinString(f);
    289383  printf("%f = ", f);
     
    293387  printf("Byte Array: ");
    294388  for (int i = 0; i < 4; i++)
    295     printf("%i  ", res[i]);
     389//    printf("%i  ", res[i]);
    296390  printf("\n");
    297391
    298392  float b = Converter::byteArrayToFloat(res);
    299393  printf("ReConvert: %f \n", b);
     394#endif
    300395}
    301396
    302397void testFloatConverter2(float f)
    303398{
     399#if 0
    304400  char* s = Converter::floatToBinString(f);
    305401  printf("### %f = ", f);
     
    314410  float b = Converter::_byteArrayToFloat(res);
    315411  printf("ReConvert: %f \n", b);
     412#endif
    316413}
    317414int converter(int argc, char** argv)
     
    435532
    436533
    437 bool ShellBuffer::addBufferLineStatic(const char* line, ...)
    438 {
     534//bool ShellBuffer::addBufferLineStatic(const char* line, ...)
     535//{
    439536  //va_list arguments;
    440537  //vprintf(line, arguments);
    441   printf("%s", line);
    442 }
     538  //  printf("%s", line);
     539//}
Note: See TracChangeset for help on using the changeset viewer.