// Demonstrates how to connect to a web server and request a web page // The index page of www.thegamecreators.com should be received using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; namespace HTTP_Client { class Program { static void Main(string[] args) { // mnClientConnected return value constants const int C_NOT_CONNECTED = 0; const int C_CONNECTED = 1; const int C_NO_SEND = 2; const int C_NO_RECV = 3; const int C_NO_SEND_RECV = 4; // Connect to server int iReturn = 0; Console.WriteLine("DarkNet version: " + mn.GetVersion()); Int64 RecvPacket = mn.CreatePacket(); Int64 SendPacket = mn.CreatePacket(); mn.SetMemorySize(SendPacket,1024); mn.Start(1,0); mn.DisableTCPHandshake(0); mn.SetAutoResizeTCP(0,0,true); mn.EnableGracefulDisconnect(0); mn.SetTCPMode(0,2); string IP = mn.DNS("www.thegamecreators.com"); iReturn = mn.Connect(0,IP,80,IP,80,5,true); mn.SetAutoResizeTCP(0,0,true); switch(iReturn) { case(1): Console.WriteLine("Connected to server"); break; case(0): Console.WriteLine("Connection timed out"); Console.WriteLine("Press any key to exit..."); Console.ReadKey(); return; break; case(-1): Console.WriteLine("Error occurred whilst connecting"); Console.WriteLine("Press any key to exit..."); Console.ReadKey(); return; break; case(-2): Console.WriteLine("Error occurred: server rejected connection request"); Console.WriteLine("Press any key to exit..."); Console.ReadKey(); return; break; } // Send request Console.WriteLine("Press any key to send!"); Console.ReadKey(); mn.AddString(SendPacket, "GET / HTTP/1.1\r\n",0,false); mn.AddString(SendPacket, "Host: thegamecreators.com\r\n",0,false); mn.AddString(SendPacket, "Connection: close\r\n",0,false); mn.SendTCP(0,SendPacket,0,false,true); // Main loop while(mn.ClientConnected(0,0) != 0) { // Use less CPU Thread.Sleep(1); // Check for graceful disconnect if(mn.ClientConnected(0,0) == C_NO_RECV) { // Wait for all data to be received before closing connection if(mn.GetTCPStoreAmount(0, 0) == 0) { mn.ShutdownClient(0,0); } } // TCP packets iReturn = mn.RecvTCP(0,RecvPacket,0); if(iReturn > 0) { Console.WriteLine("Packet size: " + mn.GetUsedSize(RecvPacket)); if(mn.GetUsedSize(RecvPacket) > 0) { Console.WriteLine("Packet data:"); string Data = mn.GetString(RecvPacket,mn.GetUsedSize(RecvPacket),true); Console.WriteLine(Data); Console.WriteLine(); } } } Console.WriteLine("Disconnected from server!"); mn.Finish(-1); Console.WriteLine("Press any key to exit..."); Console.ReadKey(); } } }