![]() |
Netzwerverbinung möglich?
Moin Leute!
Kann mir jemand sagen, ob man überprüfen kann, ob zu einer bekannten IP eine Netzwerkverbindung möglich ist? |
Re: Netzwerverbinung möglich?
Du schickst einen Ping hin, wenn er zurück kommt, gibts ne Verbindung.
Wenn keiner zurückkommt, muss das aber noch lange nicht heißen, dass keine Verbindung existiert. |
Re: Netzwerverbinung möglich?
|
Re: Netzwerverbinung möglich?
es geht darum, dass wir ein Netzwerkspiel programmieren! Wenn nun ein Client das Spiel startet muss er herausfinden, ob der Server vorhanden ist! Oder soll der User des Spieles jedesmal erst den Server pingen? :-D
Deswegen frage ich, ob man irgendwie eine Kontrolle in das Spiel einbinden kann? |
Re: Netzwerverbinung möglich?
Moin,
auch wenn ich da derzeit keine Lösung habe: Hier geht es darum ob ein bestimmter Port auf einem Rechner reagiert. Nur die IP-anpingen bringt zwar den laufenden Rechner zum vorschein, sagt aber noch nichts über den gestarteten Server oer Cleint aus. Grüße // Martin |
Re: Netzwerverbinung möglich?
Als erstes kann man doch einfach alle PC im Netz ermitteln, dann hat man die IPs in einer Liste und kann bei jeder IP das zugeordnete Port abfragen, ob dort das Serverprogramm läuft.
Die Procedure:
Delphi-Quellcode:
procedure TMainForm.GetLANPCs(List: TStrings);
procedure EnumFunc(NetResource: PNetResource); var Enum: THandle; Count, BufferSize: DWORD; Buffer: array[0..16384 div SizeOf(TNetResource)] of TNetResource; i: Integer; S: String; begin if WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, NetResource, Enum) = NO_ERROR then try Count := $FFFFFFFF; BufferSize := SizeOf(Buffer); while WNetEnumResource(Enum, Count, @Buffer, BufferSize) = NO_ERROR do for i := 0 to Count - 1 do begin if Buffer[i].dwDisplayType = RESOURCEDISPLAYTYPE_SERVER then begin S:=Buffer[i].lpRemoteName; Delete(S,1,2); List.Add(S); end; if (Buffer[i].dwUsage and RESOURCEUSAGE_CONTAINER) > 0 then EnumFunc(@Buffer[i]) end; finally WNetCloseEnum(Enum); end; end; begin EnumFunc(nil); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz