www.pudn.com > stund_0.92_Jun06.rar > server.cxx
#include#include #include #include #ifndef WIN32 #include #include #include #include #include #include #endif #include "udp.h" #include "stun.h" using namespace std; void usage() { cerr << "Usage: " << endl << " ./server [-v] [-h] [-h IP_Address] [-a IP_Address] [-p port] [-o port]" << endl << " " << endl << " If the IP addresses of your NIC are 10.0.1.150 and 10.0.1.151, run this program with" << endl << " ./server -v -h 10.0.1.150 -a 10.0.1.151" << endl << " STUN servers need two IP addresses and two ports, these can be specified with:" << endl << " -h sets the primary IP" << endl << " -a sets the secondary IP" << endl << " -p sets the primary port and defaults to 3478" << endl << " -o sets the secondary port and defaults to 3479" << endl << " -b makes the program run in the backgroud" << endl << " -v runs in verbose mode" << endl // in makefile too << endl; } int main(int argc, char* argv[]) { assert( sizeof(UInt8 ) == 1 ); assert( sizeof(UInt16) == 2 ); assert( sizeof(UInt32) == 4 ); initNetwork(); clog << "STUN server version " << STUN_VERSION_MAJOR << "." << STUN_VERSION_MINOR << endl; StunAddress4 myAddr; StunAddress4 altAddr; bool verbose=false; bool background=false; myAddr.addr = 0; altAddr.addr = 0; myAddr.port = STUN_PORT; altAddr.port = STUN_PORT+1; int myPort = 0; int altPort = 0; UInt32 interfaces[10]; int numInterfaces = stunFindLocalInterfaces(interfaces,10); if (numInterfaces == 2) { myAddr.addr = interfaces[0]; myAddr.port = STUN_PORT; altAddr.addr = interfaces[1]; altAddr.port = STUN_PORT+1; } for ( int arg = 1; arg . * */ // Local Variables: // mode:c++ // c-file-style:"ellemtel" // c-file-offsets:((case-label . +)) // indent-tabs-mode:nil // End: