mich treibt gerade die Sache mit dem Netzwerk um. Dazu habe ich nachstehenden Server Code geschrieben.
Vor dem einstig in die Main Schleife
Code: Alles auswählen
Define Netzwerk = CreateNetworkServer(#PB_Any, 6000 ,#PB_Network_TCP , "127.0.0.1" )
If Netzwerk : Debug "Server geöffnet" : EndIf
Define NetzwerkEvent
Define *MemoryID = AllocateMemory(1024+4)
Define *MemoryIDString = AllocateMemory(1024+4)
Define result, Verbindung, DatenString.s, ClientNr
Code: Alles auswählen
NetzwerkEvent = NetworkServerEvent(Netzwerk)
If NetzwerkEvent = #PB_NetworkEvent_Data
Verbindung = EventClient()
result = 1024
While result = 1024
result = ReceiveNetworkData(Verbindung, *MemoryID, 1024)
DatenString.s = PeekS(*MemoryID,result,#PB_Ascii )
Debug DatenString.s
Wend
ElseIf #PB_NetworkEvent_Connect ; kommt ständig. Obwohl eigentlich kein Event kommen sollte
i = EventClient()
If i>0 And i <> ClientNr
ClientNr = i
Debug "Ein Client hat sich angemeldet"
EndIf
ElseIf #PB_NetworkEvent_Disconnect ; Kommt nicht, Wenn die Verbindung von alleine unterbricht.
Debug "Der Client ist weg"
EndIf
Das Event #PB_NetworkEvent_Connect kommt ständig. Und #PB_NetworkEvent_Disconnect nie. Auch nicht wenn ich den Client
ordentlich mit dem CloseNetworkConnection(Verbindung) beände. Hier noch das Client Programm. Es ist ja nicht so das
das nicht anders geregelt werden könnte. Aber die Hilfe sagt da auch nichts anderes. Daher erwarte ich natürlich
das es funktioniert. Es ist aber möglich das ich ein Kreutz in meinen Neuronen habe. Wenn das bischen Code
nicht so funktioniert ...... dan wundert es mich nicht warum die Sprache nicht so eine Verbreitung findet. Aber dafür gibts ja
meine Videos.
Code: Alles auswählen
InitNetwork()
OpenWindow(0,0,0,200,200,"Client")
Verbindung = OpenNetworkConnection("127.0.0.1", 6000 ,#PB_Network_TCP , 10000 ,"127.0.0.1")
If Verbindung
*MemoryID = AllocateMemory(1024+4)
SendeTimer.q = ElapsedMilliseconds() +1000
Repeat
NetzwerkEvent = NetworkClientEvent(Verbindung)
If NetzwerkEvent > 0
EndIf
If SendeTimer < ElapsedMilliseconds()
SendeTimer.q = ElapsedMilliseconds() +16
SendNetworkString(Verbindung, "[PING]" ,#PB_Ascii )
EndIf
Event = WindowEvent()
If Event > 0
Select Event
Case #PB_Event_CloseWindow
Exit = 1
EndSelect
EndIf
Delay(1)
Until Exit = 1
CloseNetworkConnection(Verbindung)
EndIf
End
Gruss TFT
Ach ja. PC mit W10 : PB Demo :