Autor Beitrag
Nowo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 108



BeitragVerfasst: Sa 05.04.08 21:38 
Hey kann mir jemand helfen ? :(

Konkrete frage:

Wie kann ich mit dem NBFPAServer ein Protokoll an einen bestimmten Client senden ?
Beim NBFPAClient geht das so:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
...
  var 
    Cmd: TCmdSeq;
begin
  Cmd := TCmdSeq.Create(CMD_USERDATA);
  Cmd.Add(EditInfo1.Text);
  Cmd.Add(EditInfo2.Text);
  Cmd.Add(EditInfo3.Text);
  NBFPAClient1.Outbound.AddCmdAndFree(Cmd);
  NBFPAClient1.Send; // <- Senden
end;


Bei dem Server finde ich aber nur die funktion Broadcast, also an alle senden.
Wenn ich dann die methode mit "connections[1].sendtext(cmd) versuchte gehts das aufgrund
der CmdSeq nicht... da ich ja keinen text sende.


Wie kann ich mit dem NBFPAServer ein Protokoll an einen bestimmten Client senden ?

Vielen Dank
Nowo


Moderiert von user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Do 17.04.2008 um 15:28
Nowo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 108



BeitragVerfasst: Mo 07.04.08 17:40 
Das darf doch nicht so schwer sein...
habs auch schon manuel versucht:

ausblenden Delphi-Quelltext
1:
     FormMain.Server.Socket.Connections[0].SendText('CMD_INFO'+#13+'Heyho'+#13);					


aber klar das der server das nicht als CMD sequenz lesen kann...


Please please please i need help :cry:

_________________
Grüße Nowo
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 17.04.08 15:28 
Moin!

user profile iconNowo hat folgendes geschrieben:
Wie kann ich mit dem NBFPAServer ein Protokoll an einen bestimmten Client senden ?
Btw: du sendest kein "Protokoll", sondern eine "Kommandosequenz". :idea: ;)

TNBFPA-Doku, Seite 13 hat folgendes geschrieben:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
// Neuer Client: bisherige Benutzerliste an den Neuen senden
procedure TServerMain.NBFPAServer1ClientConnect(Sender: TObject;
  PA: TProtocolAdapter);
  var
    Cmd: TCmdSeq;
    i: Integer;
begin
  // alle Verbindungen des Servers durchgehen...
  for i := 0 to NBFPAServer1.Connections.Count-1 do
    // ist die betrachtete Verbindung (i) die Neue?
    if (NBFPAServer1.ConnectionByIndex[i] <> PA) then begin // nein, dann...
      Cmd := TCmdSeq.Create(CMD_USERDATA); // Details der Verbindung einsammeln
      Cmd.Add(NBFPAServer1.ConnectionByIndex[i].SessionID);
      Cmd.Add(NBFPAServer1.ConnectionByIndex[i].SessionName);
      PA.Outbound.AddCmdAndFree(Cmd); // und dem neuen Client mitteilen
    end;
  // .Send ist nicht notwendig, weil kurz nach dem OnConnect eh ein OnSession-
  // NameChange-Ereignis eintritt, in dem auch an den neuen Client gesendet wird.
end;
Zugegeben, hier wird der nötige Code nicht direkt wörtlich gezeigt, aber das Prinzip sollte daraus schon hervorgehen:
ausblenden Delphi-Quelltext
1:
2:
NBFPAServer1.ConnectionByIndex[i].Outbound.AddCmdAndFree(Cmd);
NBFPAServer1.ConnectionByIndex[i].Send;
sendet an Verbindung i die Sequenz cmd.

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Nowo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 108



BeitragVerfasst: Do 17.04.08 19:35 
Vielen dank =)
Habs grade als gelöst markiert !

(willkommen zurück aus dem urlaub)

_________________
Grüße Nowo