void TCPSocketTest::run() throw(std::runtime_error)
{

  net::TCPServerSocket server(1234);
  net::TCPClientSocket client;

  net::ISocket* sock1;
  net::ISocket* sock2;

  server.listen();

  sock2 = client.connect("localhost",1234);

  //  std::cout << "Na los, ich warte!" << std::endl;

  //  while (!sock1->connected())
    {
      sock1 = server.accept();  
    }

  //  assert(client.connected());
  //  std::cout << "connected!!" << std::endl;

    //  sock1->setSoTimeout(0);
    //  sock2->setSoTimeout(0);

  
  for (int len = 1; len <= 1024; len += 1)
    {
      unsigned char* data = createRandomBlock(len);
      sock2->send(utils::Buffer(data,len));

      utils::Buffer buf;

      sock1->receive(buf);
  
      if (!compareBlocks(data,len,buf.getPtr(),buf.getLen()))
	{
	  std::ostringstream os;
	  os << "Wrong data. len = " << len << "." << std::endl;
	  //	  printBlock(os,data,len);
	  os << std::endl;
	  //	  printBlock(os,buf.getPtr(),buf.getLen());
	  os << len << "," << buf.getLen() << std::endl;
	  std::string msg = os.str();
	  throw std::runtime_error(msg.c_str());
	}

      if (len % 128 == 0)
	{
	  std::cerr << ".";
	  std::cerr.flush();
	}

      delete[] data;
    }

  delete sock1;
  delete sock2;
}
Beispiel #2
0
void createNewBlocksIfNeeded(BlockInfo& block, int x, int y)
{
   if(!block.initalized)
   {
     double location[3] = {y * BLOCK_SIZE, x * BLOCK_SIZE, 0};
     double size[3] = {BLOCK_SIZE, BLOCK_SIZE, BLOCK_SIZE_Z}; 
     createRandomBlock(block, size, location);
   }
}
Beispiel #3
0
void BufferTest::run() throw(std::runtime_error)
{
  // teste ob sich der buffer die daten kopiert
  std::string msg = "Hallo Kinder";
  utils::Buffer b((unsigned char*) msg.c_str(),msg.length()+1);

  msg = "00000";
  if (strcmp((const char*) b.getPtr(),"Hallo Kinder") != 0)
    throw std::runtime_error("Fehler");

  // teste + und += und =
  for (int size = 1; size <= 1024; size *= 2)
    {
      unsigned char* data = createRandomBlock(size*2);
      utils::Buffer b1(data,size);
      utils::Buffer b2(data+size,size);

      utils::Buffer b3 = b1 + b2;
      if (!compareBlocks(data,size*2,b3.getPtr(),b3.getLen()))
	{
	  throw std::runtime_error("Fehler!");
	}
  
      b1 += b2;
      if (!compareBlocks(data,size*2,b1.getPtr(),b1.getLen()))
	{
	  throw std::runtime_error("Fehler!");
	}

      b2 = b3;
      if (!compareBlocks(data,size*2,b2.getPtr(),b2.getLen()))
	{
	  throw std::runtime_error("Fehler!");
	}
      delete[] data;
    }

}
bool KeyboardScene::init() {
	if (!Layer::init())
		return false;
	audio->preloadBackgroundMusic("bgm.mp3");
	audio->preloadEffect("boop.mp3");
	audio->playBackgroundMusic("bgm.mp3");
	bg->setPosition(sw / 2, sh / 2);
	bg->setAnchorPoint(Vec2(0.5, 0.5));
	this->addChild(bg);
	sprite->setAnchorPoint(Vec2(0.5, 0.0));
	sprite->setPosition(sw / 2, 0);
	this->addChild(sprite);
	ball->setAnchorPoint(Vec2(0.5, 0.5));
	ball->setPosition(sw / 2, sh / 2);
	showscore->setPosition(125, 20);
	this->addChild(showscore);
	this->addChild(ball);
	int wasd = 12;
	int hasd = 6;
	for (int i = 0; i < wasd; i++) {
		for (int j = 0; j < hasd; j++) {
			if ((i+j)%2==0 || (i + j) % 3 == 0)
			{
				auto temp = createRandomBlock();
				temp->setAnchorPoint(Vec2(0.5, 0.5));
				temp->setPosition(i*bw + bw / 2, j*bh + bh * 14);
				this->addChild(temp);
				blocks.push_back(temp);
			}
		}
	}

	auto eventListener = EventListenerKeyboard::create();
	eventListener->onKeyPressed = [&](EventKeyboard::KeyCode keyCode, Event* event) {
		switch (keyCode) {
		case EventKeyboard::KeyCode::KEY_LEFT_ARROW:
			left = true;
			break;
		case EventKeyboard::KeyCode::KEY_RIGHT_ARROW:
			right = true;
			break;
		case EventKeyboard::KeyCode::KEY_SPACE:
			if (life !=0 && balldir != balldir ){
				ball->setPosition(sw / 2, sh / 2);
				balldir = initdir;
			}
			break;
		}
	};

	eventListener->onKeyReleased = [&](EventKeyboard::KeyCode keyCode, Event* event) {
		switch (keyCode) {
		case EventKeyboard::KeyCode::KEY_LEFT_ARROW:
			left = false;
			break;
		case EventKeyboard::KeyCode::KEY_RIGHT_ARROW:
			right = false;
			break;
		}
	};

	this->_eventDispatcher->addEventListenerWithSceneGraphPriority(eventListener, sprite);
	this->scheduleUpdate();
	return true;
}