Computer und Port bereit ?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Computer und Port bereit ?

Beitrag von mk-soft »

Ping geht nicht mit mit PB 64bit?. Mit PB 32bit auf Win7 X64 geht...
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Re: Computer und Port bereit ?

Beitrag von Bisonte »

Ok ... nach ewig langem rumprobieren hab ich dann rausgefunden, dass meine Firewall schuld war :oops:

Also PB x86 und Win7 x64 geht doch :oops:

Vielen Dank für die Mühen die ich gemacht hab ... ;)
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Benutzeravatar
Elektrolurch
Beiträge: 168
Registriert: 11.10.2007 16:48
Wohnort: 49°26'51.46"N - 8°59'49.06"E
Kontaktdaten:

Re: Computer und Port bereit ?

Beitrag von Elektrolurch »

Hi

ich habe es gerade mal auch mit PB64 probiert und kriege tatsächlich keine Ergebnisse.
Alles scheint zu funktionieren, lediglich die Windowsfunktion scheint unter x64 nicht zu funktionieren.

Code: Alles auswählen

 If IcmpSendEcho_(lngHPort, lngDAddress, @strMessage, MsgLen, #Null, *buffer, SizeOf(ICMP_ECHO_REPLY) + MsgLen, #PING_TIMEOUT)
BYe André
Wer Rechtschreibfehler findet darf sie ruhig behalten, ich brauche sie nicht mehr, ich habe noch genug davon.
BildBildBild
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: Computer und Port bereit ?

Beitrag von HeX0R »

Die funktioniert schon, sie erwartet nur etwas mehr Speicher:

Code: Alles auswählen

Procedure Ping(IP.s, TimeOUT, *Result.INTEGER = #Null)
	Protected lngHPort, strMessage.s, MsgLen, lngDAddress
	Protected *ECHO.ICMP_ECHO_REPLY, Result

	lngHPort = IcmpCreateFile_()
	If lngHPort <> #INVALID_HANDLE_VALUE
		strMessage  = "Echo This Message back to me"
		MsgLen      = StringByteLength(strMessage)
		*ECHO       = AllocateMemory(SizeOf(ICMP_ECHO_REPLY) + MsgLen + 16)
		lngDAddress = MakeIPAddress(Val(StringField(IP.s, 1, ".")), Val(StringField(IP.s, 2, ".")), Val(StringField(IP.s, 3, ".")), Val(StringField(IP.s, 4, ".")))
		Result      = -1

		If *ECHO
			If IcmpSendEcho_(lngHPort, lngDAddress, @strMessage, MsgLen, #Null, *ECHO, SizeOf(ICMP_ECHO_REPLY) + MsgLen + 16, TimeOUT)
				Result = *ECHO\RoundTripTime
				Debug PeekS(*ECHO\Data, *ECHO\DataSize)
			EndIf
			FreeMemory(*ECHO)
		EndIf
		IcmpCloseHandle_(lngHPort)
	EndIf

	If *Result
		*Result\i = Result
	EndIf
	ProcedureReturn Result
EndProcedure

Define.i i
If Ping("127.0.0.1", 1000, @i) = -1
	Debug "Error, no host found!"
Else
	Debug "Ping answer: " + Str(i) + "ms"
EndIf
Ausserdem hast du den Speicher und das Handle in deiner Version nicht mehr freigegeben.

Übrigens:
Elektrolurch hat geschrieben: Ich habe mittlerweile selbst einen kleinen Ping gebastelt.
Du weisst ja, dass man immer schön die Quellenangaben mitliefern sollte.
Benutzeravatar
Elektrolurch
Beiträge: 168
Registriert: 11.10.2007 16:48
Wohnort: 49°26'51.46"N - 8°59'49.06"E
Kontaktdaten:

Re: Computer und Port bereit ?

Beitrag von Elektrolurch »

Danke HeXOR

natürlich hast du recht, aber ich hatte ja schon eingeräumt,dass ich "gegutenbergt" hatte.
Da ich mich allerdings erinnerte das ich den Ping schon einmal in einem Code benutzt habe, sucht ich ihn in alten Codes von mir, nur wußte ich nicht mehr woher er damals kam.
Ich hätte mir ja den Post komplett schenken können, dachte aber und denke immernoch man sollte ein Problem zu Ende diskutieren.
Also "mea culpa"

BYe André
Wer Rechtschreibfehler findet darf sie ruhig behalten, ich brauche sie nicht mehr, ich habe noch genug davon.
BildBildBild
Antworten