Netzwerk - IDs verwalten etc.
Verfasst: 25.07.2006 11:48
Hallo zusammen - ich hab mir gerade mal angeschaut wie das mit der Netzwerkgeschichte funktioniert etc. habe auch schon versucht in div. Threads etc. mehr über meine Problematik in Erfahrung zu bringen, leider, so muß ich gestehen, komm ich nicht weiter - aber vielleicht hat ja hierzu jemand eine gute Idee etc.
Also:
Mein Problem ist es, dass ich nicht weiß wie ich an einem Server die Clients so verwalten kann, dass ich Sie einzeln ansprechen kann (gezielt) - Mir ist klar dass ich hier ne Art kleine Datenbank benötige nur beim umsetzten hab ich glaub Logikprobleme, gerade wenn ich die anderen Beispiele hierzu anschaue.
Server:
Client:
Kann mir evtl. jemand ein Beispiel geben mit erklärung für die ganz dummen *G - denn ich plans derzeit mal garnicht. Hoffe nur meine Beschreibung war ausrecihend genug - und ja, - merci schon mal für die Hilfe.
Also:
Mein Problem ist es, dass ich nicht weiß wie ich an einem Server die Clients so verwalten kann, dass ich Sie einzeln ansprechen kann (gezielt) - Mir ist klar dass ich hier ne Art kleine Datenbank benötige nur beim umsetzten hab ich glaub Logikprobleme, gerade wenn ich die anderen Beispiele hierzu anschaue.
Server:
Code: Alles auswählen
Structure Aktive_Clients
ClientID.l
Nickname.s
EndStructure
Dim Client_Liste.Aktive_Clients(4000)
OpenConsole()
InitNetwork()
CreateNetworkServer(00001, 6060, #PB_Network_TCP)
NetzwerkPuffer = AllocateMemory(1000)
Repeat
WindowEvent()
SEvent = NetworkServerEvent()
If SEvent
ClientID = EventClient()
ClientIP = GetClientIP(ClientID)
Select SEvent
Case 1
PrintN("SV_Event: Client connected "+Str(ClientID)+" "+IPString(ClientIP))
Case 2
Print("SV_Event: "+Str(ClientID)+" "+IPString(ClientIP))
ReceiveNetworkData(ClientID, NetzwerkPuffer, 1000)
PrintN(" "+PeekS(NetzwerkPuffer))
Debug Befehl$=PeekS(NetzwerkPuffer)
If Befehl$="godmode"
End
EndIf
SendNetworkString(ClientID,"..recieved..")
FreeMemory(NetzwerkPuffer)
NetzwerkPuffer = AllocateMemory(1000) ; zum leeren sonst bleiben reste von der vorherigen nachrit drin, warum auch immer
Case 4
PrintN("SV_Event: Client "+Str(ClientID)+" has closed the connection")
EndSelect
EndIf
Delay(1)
Until Quit = 1
CloseNetworkServer(0)
Code: Alles auswählen
InitNetwork()
newconnect:
OpenConsole()
ConnectionID = OpenNetworkConnection("127.0.0.1", 6060,#PB_Network_TCP)
NetzwerkPuffer = AllocateMemory(1000)
If ConnectionID
Print("Nickname: ")
UserID$=Input()
Repeat
CEvent = NetworkClientEvent(ConnectionID)
Select CEvent
Case 2
ReceiveNetworkData(ConnectionID, NetzwerkPuffer, 1000)
PrintN(" "+PeekS(NetzwerkPuffer))
FreeMemory(NetzwerkPuffer)
NetzwerkPuffer = AllocateMemory(1000)
Case 0
Print("Nachricht: ")
zuSenden$ = Input()
SendNetworkString(ConnectionID, UserID$+" "+zuSenden$)
ReceiveNetworkData(ConnectionID, NetzwerkPuffer, 1000)
PrintN(" "+PeekS(NetzwerkPuffer))
FreeMemory(NetzwerkPuffer)
NetzwerkPuffer = AllocateMemory(1000)
EndSelect
Until zuSenden$="exit"
EndIf
End