Exemplo n.º 1
0
//===直接导出到lua里的方法===
void Net::initialize(std::string server_ip, int server_port)
{
	initialize_profile();

	tcp_client.init(server_ip, server_port);
	tcp_client.connect();

	cocos2d::Director::getInstance()->set_battle_irrelevant_update(battle_irrelevant_update);
}
int main (int argc, char** argv)
{
    QCoreApplication app(argc, argv);

    TcpClient t;
    t.connect("127.0.0.1", 4000);

    return app.exec();
}
Exemplo n.º 3
0
int main(int argc, char** argv)
{
	/*open_progress();
	set_progress(10, "abc\ndef\nghi");
	std::this_thread::sleep_for(std::chrono::milliseconds(250));
	set_progress(20, "xyz\n123\n456");
	std::this_thread::sleep_for(std::chrono::milliseconds(250));

	close_progress();
	return 0;*/

	if(argc < 5)
	{
		std::cerr << "Usage: " << argv[0] << " <server> <port> <login> <password>" << std::endl;
		return -1;
	}

	if(!open_progress())
	{
		log_err("Cannot open progress dialog.");
		return -1;
	}

	TcpClient client;
	client.add_receiver(received);
	client.add_disconnect(disconnected);
	client.add_connect(connected);


	if(!client.connect(argv[1], argv[2]))
	{
		log_err("Error: Cannot connect.");
		return -1;
	}


	std::string strLogin = argv[3];
	std::string strPwd = argv[4];
	client.write(strLogin + " " + strPwd + "\n");
	std::this_thread::sleep_for(std::chrono::milliseconds(250));

	while(1)
	{
		client.write("counter getcounts\ncounter getmonitor 1\ncounter getpreset\n");
		std::this_thread::sleep_for(std::chrono::milliseconds(1000));
	}

	close_progress();
	return 0;
}
Exemplo n.º 4
0
int _tmain(int argc, _TCHAR* argv[])
{
    TcpClient client;

    TcpSocketCallback_t callback;
    callback.fn_recv   = recvData;
    callback.fn_notify = netNotify;
    callback.usrData   = NULL;
    client.setCallback(callback);

    InetAddress serverAddr("127.0.0.1", 58888);
    client.connect(serverAddr);

    connEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
    while (!connectServer) {
        WaitForSingleObject(connEvent, INFINITE);
        if (reconnect) {
            client.connect(serverAddr);
        }
    }

    int i = 60;
    while (i > 0) { 
        i--;
        Sleep(1000);
        string msg = "hi, I am client";
        client.send(msg.c_str(), msg.size());
    }

    client.disconnect();
    if (connEvent) {
        CloseHandle(connEvent);
        connEvent = NULL;
    }
    return 0;
}
Exemplo n.º 5
0
int main(int argc, char** argv){
  if (argc < 2) {
    printf ("ERROR: Chamada incorreta.\nEscreva '<nome do programa> <endereço IP> <porta>'.\n");
    return 0;
  }

  receivingBuffer = sendingBuffer = new char[512];
  matrix clientMatrix;

  TcpClient client;
  client.connect (argv[1], atoi(argv[2]));

  while (client.receive (receivingBuffer, textLength)) {
    cout << receivingBuffer;
    if (receivingBuffer[textLength-1]  == ':'){
      cin >> sendingBuffer;
      client.send (sendingBuffer);
    }
  }
int main(int argc, char** argv)
{
	if(argc < 3)
	{
		std::cerr << "Usage: " << argv[0] << " <server> <port>" << std::endl;
		return -1;
	}


	TcpClient client;
	//TstOut tstout;
	//client.add_receiver(boost::bind(&TstOut::print, &tstout, _1));
	client.add_receiver(received);
	client.add_disconnect(disconnected);
	client.add_connect(connected);


	if(!client.connect(argv[1], argv[2]))
	{
		log_err("Cannot connect.");
		return -1;
	}

	std::string strMsg;
	while(client.is_connected())
	{
		std::getline(std::cin, strMsg);
		if(strMsg == "!exit!")
			break;

		strMsg+="\n";
		client.write(strMsg);
	}

	return 0;
}
Exemplo n.º 7
0
/**
 * Работа канала связи с Сервером Роботов, запускать в loop. 
 * При получении команды, вызывает handleInput.
 */
void rraptorRobotServerTasks() {
    DNETcK::STATUS networkStatus;
    int readSize;
    int writeSize;
    
    // Держим Tcp-стек в живом состоянии
    DNETcK::periodicTasks();
        
    if(!DWIFIcK::isConnected(conectionId)) {
        // Не подключены к WiFi - выключим лампочку
        digitalWrite(WIFI_STATUS_PIN, LOW);
        
        // Подключимся к сети WiFi
        bool connectedToWifi = false;
        
        #ifdef DEBUG_SERIAL
            Serial.println("Connecting wifi...");
        #endif // DEBUG_SERIAL
        conectionId = connectWifi(&networkStatus);
  
        if(conectionId != DWIFIcK::INVALID_CONNECTION_ID) {
            // На этом этапе подключение будет создано, даже если указанная 
            // сеть Wifi недоступна или для нее задан неправильный пароль
            #ifdef DEBUG_SERIAL
                Serial.print("Connection created, connection id=");
                Serial.println(conectionId, DEC);

                Serial.print("Initializing IP stack...");
            #endif // DEBUG_SERIAL
            
            // Получим IP и сетевые адреса по DHCP
            DNETcK::begin();
            
            // К открытой сети может подключиться с первой попытки, к сети с паролем
            // может потребоваться несколько циклов (если пароль для сети неправильный,
            // то ошибка вылезет тоже на этом этапе).
            bool initializing = true;
            while(initializing) {
                #ifdef DEBUG_SERIAL 
                    Serial.print(".");
                #endif // DEBUG_SERIAL
                
                // Вызов isInitialized заблокируется до тех пор, пока стек не будет 
                // инициализирован или не истечет время ожидания (по умолчанию 15 секунд). 
                // Если сеть не подключится до истечения таймаута и при этом не произойдет
                // ошибка, isInitialized просто вернет FALSE без кода ошибки, при необходимости
                // можно вызвать его повторно до успеха или ошибки.
                if(DNETcK::isInitialized(&networkStatus)) {
                    // Стек IP инициализирован
                    connectedToWifi = true;
                    
                    initializing = false;
                } else if(DNETcK::isStatusAnError(networkStatus)) {
                    // Стек IP не инициализирован из-за ошибки,
                    // в этом месте больше не пробуем
                    initializing = false;
                }
            }
            #ifdef DEBUG_SERIAL 
                Serial.println();
            #endif // DEBUG_SERIAL
        }
        
        if(connectedToWifi) {
            // Подключились к Wifi
            #ifdef DEBUG_SERIAL 
                Serial.println("Connected to wifi");
                printNetworkStatus();
            #endif // DEBUG_SERIAL
                        
            // включим лампочку
            digitalWrite(WIFI_STATUS_PIN, HIGH);
        } else {
            // Так и не получилось подключиться
            #ifdef DEBUG_SERIAL 
                Serial.println("Retry after 4 seconds...");
                Serial.print("Failed to connect wifi, status: ");
                //Serial.print(networkStatus, DEC);
                printDNETcKStatus(networkStatus);
                Serial.println();
            #endif // DEBUG_SERIAL
            
            // Нужно корректно завершить весь стек IP и Wifi, чтобы
            // иметь возможность переподключиться на следующей итерации
            DNETcK::end();
            DWIFIcK::disconnect(conectionId);
            conectionId = DWIFIcK::INVALID_CONNECTION_ID;
            
            // Немного подождем и попробуем переподключиться на следующей итерации
            #ifdef DEBUG_SERIAL 
                Serial.println("Retry after 4 seconds...");
            #endif // DEBUG_SERIAL
            
            delay(4000);
        }
    } else if(!tcpClient.isConnected()) {
        // Подключимся к Серверу Роботов
        
        bool connectedToServer = false;
        
        #ifdef DEBUG_SERIAL 
                Serial.print("Connecting to Robot Server...");
        #endif // DEBUG_SERIAL
        
        tcpClient.connect(robot_server_host, robot_server_port);
        // Сокет для подключения назначен, подождем, чем завершится процесс подключения
        bool connecting = true;
        while(connecting) {
            #ifdef DEBUG_SERIAL 
                Serial.print(".");
            #endif // DEBUG_SERIAL
            
            if(tcpClient.isConnected(&networkStatus)) {
                // Подключились к сереверу
                connectedToServer = true;
                                    
                connecting = false;
            } else if(DNETcK::isStatusAnError(networkStatus)) {
                // Не смогли подключиться к серверу из-за ошибки,
                // в этом месте больше не пробуем
                connecting = false;                    
            }
        }
        Serial.println();
        
        if(connectedToServer) {
            // Подключились к Серверу Роботов
            #ifdef DEBUG_SERIAL 
                Serial.println("Connected to Robot Server");
            
                printTcpClientStatus(&tcpClient);
            #endif // DEBUG_SERIAL
        } else {
            // Так и не получилось подключиться
            #ifdef DEBUG_SERIAL
                Serial.print("Failed to connect Robot Server, status: ");
                //Serial.print(networkStatus, DEC);
                printDNETcKStatus(networkStatus);
                Serial.println();
            #endif // DEBUG_SERIAL
            
            // Вернем TCP-клиента в исходное состояние
            tcpClient.close();
            
            // Немного подождем и попробуем переподключиться на следующей итерации
            #ifdef DEBUG_SERIAL
                Serial.println("Retry after 4 seconds...");
            #endif // DEBUG_SERIAL
            delay(4000);
        }
    } else {
        // Подключены к серверу - читаем команды, отправляем ответы
        
        // есть чо почитать?
        if((readSize = tcpClient.available()) > 0) {
            readSize = readSize < sizeof(read_buffer) ? readSize : sizeof(read_buffer);
            readSize = tcpClient.readStream((byte*)read_buffer, readSize);
            
            #ifdef DEBUG_SERIAL
                // Считали порцию данных
                read_buffer[readSize] = 0; // строка должна оканчиваться нулем
                Serial.print("Read: ");
                Serial.println(read_buffer);
            #endif // DEBUG_SERIAL
 
            // и можно выполнить команду, ответ попадет в write_buffer
            writeSize = handleInput(read_buffer, readSize, write_buffer);
            write_size = writeSize;
        }
            
        if(write_size > 0) {
            #ifdef DEBUG_SERIAL
                Serial.print("Write: ");
                Serial.print(write_buffer);
                Serial.print(" (size=");
                Serial.print(write_size);
                Serial.println(")");
            #endif // DEBUG_SERIAL
                        
            tcpClient.writeStream((const byte*)write_buffer, write_size);
            write_size = 0;
        }
    }
}