void Client::Logic() { clock_t time = clock(); clock_t actime = time; SOCKET bsock; SocketBase bcomm; sockaddr_in &bsin = bcomm.Connect( PORT_BROADCAST ); bsock = bcomm.CreateSocket(); bcomm.Bind(); bcomm.SetBroadcast( true ); int keysize = int( key.size() + 1 ); int portsize = sizeof port; char *message = new char[ keysize + portsize ]; //memcpy( message, this.key.c_str(), keysize ); //memcpy( message + keysize, &this.port, portsize ); while ( running ) { LONGLONG flowend = Clock() - flowstart; if ( flowend > 1000000LL ) { flowstart = Clock(); currentdatasent = 0; float l = GetRTT(); if ( l < 0.0001f ) BandWidth += 512; else if ( l > 0.001f ) BandWidth -= 512; } if ( !ServerFound ) { FindServer( bsock, message, portsize, keysize ); } SendPackets(); ReceivePackets(); HandlePackets(); UpdateRTT(); Sleep( 10 ); } }
int UwCbrModule::command(int argc, const char *const *argv) { Tcl &tcl = Tcl::instance(); if (argc == 2) { if (strcasecmp(argv[1], "start") == 0) { start(); return TCL_OK; } else if (strcasecmp(argv[1], "stop") == 0) { stop(); return TCL_OK; } else if (strcasecmp(argv[1], "getrtt") == 0) { tcl.resultf("%f", GetRTT()); return TCL_OK; } else if (strcasecmp(argv[1], "getftt") == 0) { tcl.resultf("%f", GetFTT()); return TCL_OK; } else if (strcasecmp(argv[1], "getper") == 0) { tcl.resultf("%f", GetPER()); return TCL_OK; } else if (strcasecmp(argv[1], "getthr") == 0) { tcl.resultf("%f", GetTHR()); return TCL_OK; } else if (strcasecmp(argv[1], "getcbrheadersize") == 0) { tcl.resultf("%d", this->getCbrHeaderSize()); return TCL_OK; } else if (strcasecmp(argv[1], "getrttstd") == 0) { tcl.resultf("%f", GetRTTstd()); return TCL_OK; } else if (strcasecmp(argv[1], "getfttstd") == 0) { tcl.resultf("%f", GetFTTstd()); return TCL_OK; } else if (strcasecmp(argv[1], "getsentpkts") == 0) { tcl.resultf("%d", txsn - 1); return TCL_OK; } else if (strcasecmp(argv[1], "getrecvpkts") == 0) { tcl.resultf("%d", pkts_recv); return TCL_OK; } else if (strcasecmp(argv[1], "setprioritylow") == 0) { priority_ = 0; return TCL_OK; } else if (strcasecmp(argv[1], "setpriorityhigh") == 0) { priority_ = 1; return TCL_OK; } else if (strcasecmp(argv[1], "sendPkt") == 0) { this->sendPkt(); return TCL_OK; } else if (strcasecmp(argv[1], "sendPktLowPriority") == 0) { this->sendPktLowPriority(); return TCL_OK; } else if (strcasecmp(argv[1], "sendPktHighPriority") == 0) { this->sendPktHighPriority(); return TCL_OK; } else if (strcasecmp(argv[1], "resetStats") == 0) { resetStats(); fprintf(stderr, "CbrModule::command() resetStats %s, pkts_last_reset=%d, " "hrsn=%d, txsn=%d\n", tag_, pkts_last_reset, hrsn, txsn); return TCL_OK; } else if (strcasecmp(argv[1], "printidspkts") == 0) { this->printIdsPkts(); return TCL_OK; } } return Module::command(argc, argv); }