Noch konnte ich keinen nachvollziehbaren Code erstellen, bin noch nicht dazugekommen und meinen Code kann ich hier nicht komplett reinkopieren. ich versuche das aber noch nachzuliefern.
Zum Problem:
Das erstellen von mehreren Servern bringt kein Problem, auch nicht wenn schon Verbindungen offen sind. Was aber nicht klappt ist nachträglich einen Server zu erstellen, wenn die Netzwerkabfragen in einem extra Thread laufen. CreateNetworkServer() bleibt dann einfach hängen.
Na da habe ich es doch noch geschafft(getestet unter Win98 und XP, PB4b6):
Code: Alles auswählen
OpenConsole()
InitNetwork()
s1.l = CreateNetworkServer(#PB_Any, 2222 )
PrintN("s1="+Str(s1))
Procedure net(p.l)
PrintN("go")
Repeat
NetworkServerEvent.b = NetworkServerEvent()
If NetworkServerEvent > 0
ServerId.l = EventServer()
ClientID.l = EventClient()
PrintN("ClientID="+Str(ClientID))
EndIf
Until 0
PrintN("Error")
EndProcedure
CreateThread(@net(),0)
Delay(3000)
cid.l = OpenNetworkConnection("127.0.0.1",2222)
cid.l = OpenNetworkConnection("127.0.0.1",2222)
cid.l = OpenNetworkConnection("127.0.0.1",2222)
;PrintN("cid="+Str(cid))
PrintN("Erstelle 2. Server")
s2.l = CreateNetworkServer(#PB_Any, 2223 )
PrintN("geht doch")
PrintN("s2="+Str(s2))
Delay(1000*30)
CloseConsole()
Dank HeX0R ist mir was aufgefallen.
Der Fehler tritt auf wenn man in den Projekteinstellungen folgendes aktiviert hat:
Thread safe executable
Gruß Toshy