Seite 1 von 2

Fehler bei Network

Verfasst: 12.11.2007 20:25
von mbvwt4
Hallo,
seit dem ich die neue 4.10 Version einsetze funktionieren mehrere
Server, die auf verschiedenen Ports in einer Anwendung laufen, nicht mehr.

Unter 4.01 war alles in Ordnung.

Nur der zu erst gestartete Server funktioniert, alle anderen nicht mehr.
Lediglich ein Connect Ereignis wird bei den anderen Server zurückgegeben,
noch nicht einmal ein disconnect.

Ist bei Linux und Windows so.

Verfasst: 12.11.2007 22:40
von HeX0R
Reproduzierungscode:

Code: Alles auswählen

InitNetwork()
#StartPort = 1024
S1.l = CreateNetworkServer(0, #StartPort)
S2.l = CreateNetworkServer(1, #StartPort + 1)
S3.l = CreateNetworkServer(2, #StartPort + 2)

Dim C.l(3)
Buffer.s = Space(1024)

If S1 = 0 Or S2 = 0 Or S3 = 0
	MessageRequester("Error", "At least one Server couldn't get started!")
	End
EndIf
OpenWindow(0, 250, 250, 250, 200, "", #PB_Window_SystemMenu)
CreateGadgetList(WindowID(0))
ListIconGadget(0, 5, 5, 240, 100, "Server#", 50)
AddGadgetColumn(0, 1, "Message", 186)
For i = 1 To 3
	TextGadget(i, 5, i * 30 + 82, 40, 20, "Client" + Str(i))
	StringGadget(i + 3, 47, i * 30 + 80, 90, 20, "")
	ButtonGadget(i + 6, 142, i * 30 + 80, 40, 20, "Send")
	ButtonGadget(i + 9, 187, i * 30 + 80, 60, 20, "Connect")
	DisableGadget(i + 3, 1)
	DisableGadget(i + 6, 1)
Next i
Repeat
	Select WindowEvent()
		Case 0
			Select NetworkServerEvent()
				Case 0
					Delay(5)
				Case #PB_NetworkEvent_Connect
					AddGadgetItem(0, -1, Str(EventServer()) + #LF$ + "New Client: " + Str(EventClient()))
				Case #PB_NetworkEvent_Disconnect
					AddGadgetItem(0, -1, Str(EventServer()) + #LF$ + "Client quit: " + Str(EventClient()))
				Case #PB_NetworkEvent_Data
					S = ReceiveNetworkData(EventClient(), @Buffer, 1024)
					AddGadgetItem(0, -1, Str(EventServer()) + #LF$ + "Text: " + Left(Buffer, S))
			EndSelect
		Case #PB_Event_Gadget
			Gadget.l = EventGadget()
			Select Gadget
				Case 7 To 9
					a$ = GetGadgetText(Gadget - 3)
					*G.LONG = @C(Gadget - 7)
					If a$ And *G\l
						SendNetworkString(*G\l, a$)
						SetGadgetText(Gadget - 3, "")
					EndIf
				Case 10 To 12
					*G.LONG = @C(Gadget - 10)
					If *G\l
						CloseNetworkConnection(*G\l)
						SetGadgetText(Gadget, "Connect")
						DisableGadget(Gadget - 6, 1)
						DisableGadget(Gadget - 3, 1)
						*G\l = 0
					Else
						*G\l = OpenNetworkConnection("127.0.0.1", #StartPort + Gadget - 10)
						If *G\l
							SetGadgetText(Gadget, "Disconnect")
							DisableGadget(Gadget - 6, 0)
							DisableGadget(Gadget - 3, 0)
						EndIf
					EndIf
			EndSelect
		Case #PB_Event_CloseWindow
			Break
	EndSelect
ForEver

Verfasst: 19.11.2007 09:55
von mbvwt4
Hallo,
anscheinend braucht wohl niemand mehrere Server in seiner Anwendung,
oder es stört niemanden das es Befehle gibt, die in einer Version funktionieren und dann in einer neuen halt nicht mehr.
Wann kann man denn damit rechnen das zumindest ein Bugfix zur Verfügung gestellt wird. >_<

Verfasst: 19.11.2007 10:32
von STARGÅTE
das PureBasic Team wird wohl kauf nach jeden gefundenen BUG sofort eine neue Version rausbringen, es wird wie immer erst gesammelt und dann später ein Update geben.

Verfasst: 19.11.2007 14:39
von Zaphod
Das passiert ein bis zweimal im Jahr... hotfixes gibt es hier nicht.

Verfasst: 19.11.2007 14:48
von HeX0R
Deswegen spiele ich auch grundsätzlich mit den Betaversionen mit (natürlich in nem Extraordner).
Nur so ist gewährleistet... ähm, naja, o.k. das Wort ist jetzt übertrieben... sagen wir die Gefahr ist kleiner, dass die von mir selbst gefundenen Bugs während der Betaphase (in der sehr viel schneller repariert wird als dann später) nicht gefixt werden.

Verfasst: 19.11.2007 17:40
von mk-soft
Wer damit leben kann, verwendet die Network LIB von der PB-Version 4.02

Habe diese mal zum testen einkopiert und mit dieser läuft es.

Offen wir mal auf ein Bugfix vom PB-Team :cry:

Verfasst: 19.11.2007 18:58
von mbvwt4
Vielen Dank MK-Soft, das funktioniert. :D
Ich hätte sonst eine Pure-Basic Version überspringen müssen.
Wenn der Fehler ja in der Net Lib liegt, könnte man diese doch korrigieren und zum Download bereit stellen, ist nur so eine Idee?.

Verfasst: 20.11.2007 00:42
von Benubi
Danke!

Ich finde es sollte ein Versions-archiv für PB geben... der bug hat mich die Tage etwas...beschäftigt. wie in der beta.
:freak:

Verfasst: 03.01.2008 22:00
von mbvwt4
In der neuen Beta funktionieren mehrer Server immer noch nicht.