UDP socket

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Mr.Smoke, 21. November 2005 .

Schlagworte:
  1. 21. November 2005
    Hi...
    Ich suche ne Funktion für nen UDP socket der den host zu ip auflöst hatt das jemand???
    10ner ist drin!!!
     
  2. 22. November 2005
    Nachdenken ist nicht deine Stärke, was ? Die Eingabe der von mir geposteten Funktion in Google hätte dir einige Tausend Beispiele geliefert! Ich poste dir hier mal ein komplettes Programm. Daran kannst du im Detail erkennen wie der Host aufgelöst wird und das Programm anschließend einen HTTP Request durchführt!

    Code:
    #using <mscorlib.dll>
    #using <System.dll>
    using namespace System;
    using namespace System::Text;
    using namespace System::IO;
    using namespace System::Net;
    using namespace System::Net::Sockets;
    using namespace System::Collections;
    
    Socket * ConnectSocket(String* server, int port) {
     Socket* s = 0;
     IPHostEntry* hostEntry = 0;
    
     hostEntry = Dns::Resolve(server);
    
     IEnumerator* myEnum = hostEntry->AddressList->GetEnumerator();
     while (myEnum->MoveNext()) 
     {
     IPAddress* address = __try_cast<IPAddress*>(myEnum->Current);
     IPEndPoint* endPoint = new IPEndPoint(address, port);
     Socket* tmpS = new Socket(endPoint->AddressFamily, SocketType::Stream, ProtocolType::Tcp);
     tmpS->Connect(endPoint);
     if (tmpS->Connected) 
     {
     s = tmpS;
     break;
     } else
     {
     continue;
     }
     }
    
     return s;
    }
    
    String* SocketSendReceive(String* server, int port) 
    {
     String* request = String::Concat(S"GET / HTTP/1.1\r\nHost: ", server,
     S"\r\nConnection: Close\r\n\r\n");
     Byte bytesSent[] = Encoding::ASCII->GetBytes(request);
     Byte bytesReceived[] = new Byte[256];
    
     Socket* s = ConnectSocket(server, port);
     if (s == 0)
     return (S"Connection failed");
    
     s->Send(bytesSent, bytesSent->Length, static_cast<SocketFlags>(0));
    
     int bytes = 0;
     String* strRetPage = String::Concat(S"Default HTML page on ", server, S":\r\n");
     
     do {
     bytes = s->Receive(bytesReceived, bytesReceived->Length, static_cast<SocketFlags>(0));
     strRetPage = String::Concat(strRetPage, Encoding::ASCII->GetString(bytesReceived, 0, bytes));
     }
     while (bytes > 0);
     
     return strRetPage;
    }
    
    int main() {
     String* args[] = Environment::GetCommandLineArgs();
     String* host;
     int port = 80;
    
     if (args->Length == 1)
     // Hier gibst du deinen Host ein, sofern dieser nicht über
     // Konsole übergeben wurde!
     host = "www.google.de"
     else
     host = args[1];
    
     String* result = SocketSendReceive(host, port);
     Console::WriteLine(result);
    }
     
  3. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.