OpenNetworkConnection() unter Win7

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Rudi
Beiträge: 143
Registriert: 22.04.2010 18:28
Wohnort: #PB_Any

OpenNetworkConnection() unter Win7

Beitrag von Rudi »

Unter WinXP ging dieser Code noch problemlos. Hier sollen von einem Zeitserver 4 Bytes empfangen werden. Wie macht man das unter Win7? Hab von Netztwerksachen #Null Ahnung.

Code: Alles auswählen

If InitNetwork()
	*Buffer = AllocateMemory(4)
	If *Buffer
		Verbindung = OpenNetworkConnection("ptbtime2.ptb.de", 37, #PB_Network_IPv4|#PB_Network_TCP, 10000) ;hier hakt es
		If Verbindung And NetworkClientEvent(Verbindung) = #PB_NetworkEvent_Data
			If ReceiveNetworkData(Verbindung, *Buffer, MemorySize(*Buffer)) = MemorySize(*Buffer)
				Debug PeekS(*Buffer)
			EndIf
			CloseNetworkConnection(Verbindung)
		EndIf
	EndIf
	FreeMemory(*Buffer)
EndIf
Win7 (x64)PB 5.4x (x86)5,7 Windows-LeistungsindexSuche
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: OpenNetworkConnection() unter Win7

Beitrag von Kiffi »

das hier klappt schon eher:

Code: Alles auswählen

If InitNetwork()
	*Buffer = AllocateMemory(4)
	If *Buffer
		Verbindung = OpenNetworkConnection("ptbtime2.ptb.de", 37, #PB_Network_IPv4|#PB_Network_TCP, 10000) 
		If Verbindung
			Repeat
				If NetworkClientEvent(Verbindung) = #PB_NetworkEvent_Data
					If ReceiveNetworkData(Verbindung, *Buffer, MemorySize(*Buffer)) = MemorySize(*Buffer)
						Debug PeekS(*Buffer)
					EndIf
					CloseNetworkConnection(Verbindung)
					Break
				EndIf
			ForEver
		Else
			Debug "!Verbindung"
		EndIf
	EndIf
	FreeMemory(*Buffer)
EndIf
Du kannst nicht davon ausgehen, dass die Daten sofort da sind. Du musst ein wenig warten.

Abbruch bei Timeout, etc. musst Du dann noch selber einbauen...

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Rudi
Beiträge: 143
Registriert: 22.04.2010 18:28
Wohnort: #PB_Any

Re: OpenNetworkConnection() unter Win7

Beitrag von Rudi »

Funzt jetzt. Wundert mich nur, dass das unter XP ging und wozu der Timeout-Parameter überhaupt da ist.
Trotzdem wieder was dazugelernt.
Also, danke Kiffi!
Win7 (x64)PB 5.4x (x86)5,7 Windows-LeistungsindexSuche
Antworten