Seite 1 von 1

OpenNetworkConnection() unter Win7

Verfasst: 18.05.2014 13:59
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

Re: OpenNetworkConnection() unter Win7

Verfasst: 18.05.2014 14:20
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

Re: OpenNetworkConnection() unter Win7

Verfasst: 18.05.2014 14:37
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!