NetworkServerEvent(ServerID)

Got an idea for enhancing PureBasic? New command(s) you'd like to see?
rodego
User
User
Posts: 10
Joined: Thu Nov 08, 2007 7:39 pm

NetworkServerEvent(ServerID)

Post by rodego »

Ok, I want obtain events only from selected server and ignore events from other servers. Is it posible to add optional argument to NetworkServerEvent function?

Example:

Code: Select all

ServerID=CreateNetworkServer(#PB_Any,2000)
OtherServerID=CreateNetworkServer(#PB_Any,2001)

Procedure ServerManager(SID)
  Repeat
    Select NetworkServerEvent(SID)
      ...
    EndSelect
  Forever
EndProcedure

CreateThread(@ServerManager(),ServerID) ; This thread process events from first server
CreateThread(@ServerManager(),OtherServerID) ; This thread process events from second server

P.S. On Windows network lib use Async, on Linux EPoll? Is it right?

P.P.S. Sorry for my bad english))
User avatar
Joakim Christiansen
Addict
Addict
Posts: 2452
Joined: Wed Dec 22, 2004 4:12 pm
Location: Norway
Contact:

Re: NetworkServerEvent(ServerID)

Post by Joakim Christiansen »

I would suggest you do this, but yes, it would be nice with the extra argument.

Code: Select all

Procedure server1manager(event,eventClient)
  Select event
    ...
  EndSelect
EndProcedure

Procedure server2manager(event,eventClient)
  Select event
    ...
  EndSelect
EndProcedure

Procedure networkManager(d)
  Repeat
    serverEvent = NetworkServerEvent()
    If serverEvent
      Select EventServer()
        Case server1
          server1manager(serverEvent,EventClient())
        Case server2
          server2manager(serverEvent,EventClient())
      EndSelect
    Else
      Delay(5)
    EndIf
  Until stopServers
EndProcedure

server1=CreateNetworkServer(#PB_Any,2000)
server2=CreateNetworkServer(#PB_Any,2001)

CreateThread(@networkManager(),0)
I like logic, hence I dislike humans but love computers.
Niffo
Enthusiast
Enthusiast
Posts: 504
Joined: Tue Jan 31, 2006 9:43 am
Location: France

Re: NetworkServerEvent(ServerID)

Post by Niffo »

rodego wrote:Ok, I want obtain events only from selected server and ignore events from other servers. Is it posible to add optional argument to NetworkServerEvent function?
+1000 !

The other function NetworkClientEvent() already has this parameter.
I am coding a library who has to be able to create a network server and manage the network events in a thread and i cannot cleanly do that because the main program already use NetWorkServeurEvent() in its main loop :-(
Niffo
Post Reply