//===直接导出到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(); }
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; }
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; }
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; }
/** * Работа канала связи с Сервером Роботов, запускать в 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; } } }