Frage zu SendNetworkString()

Anfängerfragen zum Programmieren mit PureBasic.
knautschka
Beiträge: 8
Registriert: 19.01.2007 21:49
Wohnort: Dortmund
Kontaktdaten:

Beitrag von knautschka »

Ich bin mal wieder am Verzweifeln. :mrgreen:

Der Server kann zwar empfangen, aber das senden klappt nicht...
Jetzt ist mal der Server mit dem senden dran:

Code: Alles auswählen

SendNetworkString(ClientID,hallo$)
Oder könnte das auch am Emfpfangen bei Client liegen?

Code: Alles auswählen

SEvent = NetworkClientEvent(ConnectionID)
  
    If SEvent
    
      ClientID = EventServer()
  
      Select SEvent
  
    
        Case 2
          ;MessageRequester("PureBasic - Server", "Client "+Str(ClientID)+" has send a packet !", 0)
          ReceiveNetworkData(ClientID, Buffer, 1000)
          ;MessageRequester("Info", "String: "+PeekS(Buffer), 0)
  EndSelect
EndIf 
Ich weiß, wahrscheinlich liegt der Fehler auf der Hand, aber bitte helft mir. :)
Ich bin's... ;-)
Toshy
Beiträge: 713
Registriert: 22.03.2005 00:29
Computerausstattung: Computer und Strom vorhanden
Wohnort: LK Wolfenbüttel

Beitrag von Toshy »

Über die Serverseitige Umsetzung kann ich hier nichts sagen.

Code: Alles auswählen

SendNetworkString(ClientID,hallo$)
ist zwar richtig, aber ob du eine Gültige ClientID hast, weiß ich natürlich nicht. Aber SendNetworkString gibt dir ja als Ergebnis zurück ob gesendet wurde oder nicht. Vielleicht solltest du das auch bei deinen Fragen angeben. Durch auslesen und antzeigen des Rückgabewertest sagt dir PB doch schon ob das senden geklappt hat oder nicht.

Auf der Clientseite machst aber mehrere Fehler, erstens steht in der hilfe das
EventServer() nur auf der Serverseite benötigt wird, hat beim Client also NICHTS zu suchen und zweitens mußt du bei

Code: Alles auswählen

ReceiveNetworkData(ClientID, Buffer, 1000) 
natürlich die VerbindungsID nehmen, ob du die ClientID, ConnectionID oder sonstwie nennst ist egal, aber du mußt dich entscheiden.
Du kannst nich

Code: Alles auswählen

SEvent = NetworkClientEvent(ConnectionID) 
UND
ReceiveNetworkData(ClientID, Buffer, 1000) 
nehmen.
Normal ist nur in einer Variable die VerbindngsID gespeichert. Nehme also für beides die Variable, die du auch durch openNetworkConnection auf der Clientseite zurück erhälst.
1. Win10
PB6.1
Antworten