// Demonstrates how to connect to a web server and request a web page // The index page of www.thegamecreators.com should be received #include #include #include using namespace std; // Entry point void main() { // Connect to server int iReturn = 0; cout << "DarkNet version: " << mnGetVersion() << "\n"; long long int RecvPacket = mnCreatePacket(); long long int SendPacket = mnCreatePacket(); mnSetMemorySize(SendPacket,1024); mnStart(1,0); mnDisableTCPHandshake(0); mnSetAutoResizeTCP(0,0,true); mnEnableGracefulDisconnect(0); mnSetTCPMode(0,2); char * IP = mnDNS("www.thegamecreators.com"); iReturn = mnConnect(0,IP,80,IP,80,5,true); mnSetAutoResizeTCP(0,0,true); switch(iReturn) { case(1): cout << "Connected to server\n"; break; case(0): cout << "Connection timed out\n"; system("PAUSE"); return; break; case(-1): cout << "Error occurred whilst connecting\n"; system("PAUSE"); return; break; case(-2): cout << "Error occurred: server rejected connection request\n"; system("PAUSE"); return; break; } // Send request cout << "Press any key to send!\n"; system("PAUSE"); mnAddStringC(SendPacket, "GET / HTTP/1.1\r\n",0,false); mnAddStringC(SendPacket, "Host: thegamecreators.com\r\n",0,false); mnAddStringC(SendPacket, "Connection: close\r\n",0,false); mnSendTCP(0,SendPacket,0,false,true); // Main loop while(mnClientConnected(0,0) != 0) { // Use less CPU Sleep(1); // Check for graceful disconnect if(mnClientConnected(0,0) == C_NO_RECV) { // Wait for all data to be received before closing connection if(mnGetTCPStoreAmount(0, 0) == 0) { mnShutdownClient(0,0); } } // TCP packets iReturn = mnRecvTCP(0,RecvPacket,0); if(iReturn > 0) { cout << "Packet size: " << mnGetUsedSize(RecvPacket) << '\n'; if(mnGetUsedSize(RecvPacket) > 0) { cout << "Packet data:\n"; char * Data = mnGetStringC(RecvPacket,mnGetUsedSize(RecvPacket),true); cout << Data << '\n' << '\n'; delete[] Data; } } } cout << "Disconnected from server!\n"; system("PAUSE"); }