#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!!! + Multi-Zitat Zitieren
#2 21. November 2005 Code: IPHostEntry hostEntry = Dns.Resolve(Dns.GetHostName()); + Multi-Zitat Zitieren
#4 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); } + Multi-Zitat Zitieren