Einzelnen Beitrag anzeigen

Benutzerbild von Net7
Net7

Registriert seit: 22. Jun 2004
Ort: Lauenburg
161 Beiträge
 
Delphi 7 Professional
 
#15

Re: Frage zu SocketServer und senden an einen Client

  Alt 20. Okt 2005, 13:16
Zitat von tavoc:
Das problem ist das mein Programm nix an Trillian weiterreicht.

Ich kann also joinen usw., sehe was passiert aber nur in meinem Programm und nicht in Trillian.
Also so müste es klappen.

Delphi-Quellcode:

var
MainForm: TForm1;

// Variablen Global
VonIRCempfangen:string
VonTrillianempfangen: string;
Serverstatus:boolean; // hat Server Kontakt mit Trillian ??



function TMainForm.connect():boolean;
begin
  
  // Server für Trillian starten
  ServerSocket.Port:=1024;
  ServerSocket.Active:=true;
  

end;

procedure TMainForm.ToolButton1Click(Sender: TObject);
begin
  
  if ClientSocket.Active=false then
  begin
       ClientSocket.host :='irc.spotchat.org';
        ClientSocket.Port :=6667;
          ClientSocket.Active:=true;
  end
   else
    begin
        ClientSocket.Active:=false;
    end;
end;

procedure TMainForm.ClientSocketRead(Sender: TObject;
  Socket: TCustomWinSocket);
  
begin
       memo1.Lines.Add(VonIRCempfangen); //Memo darf hier stehen
       VonIRCempfangen:= clientsocket.Socket.ReceiveText;
    
      //!!Memo darf hier auf keinen Fall stehen!!
       if Serverstatus then
        begin
              serversocket.Socket.Connections[0].SendText(VonIRCempfangen);
              //Memo darf hier stehen
        end;

end;

procedure TMainForm.ToolButton2Click(Sender: TObject);
begin
       ClientSocket.Active:=false;
         ServerSocket.Active:=false;
end;

procedure TMainForm.ServerSocketClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
  
begin
         memo1.Lines.Add(VonTrillianempfangen); //Memo darf hier stehen
         
         VonTrillianempfangen:=serversocket.Socket.Connections[0].ReceiveText;
                 
         //!!Memo darf hier auf keinen Fall stehen!!

         clientsocket.Socket.SendText(VonTrillianempfangen);
          //Memo darf hier stehen

end;

procedure TMainForm.ServerSocketClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  Serverstatus:=true;
  Memo1.Lines.Add('OnAccept');
  Memo1.Lines.Add(Socket.RemoteAddress +'remoteadress');
  Memo1.Lines.Add(IntToStr(Socket.RemotePort)+'remoteport');
  Memo1.Lines.Add(Socket.LocalAddress+'localadress');
  Memo1.Lines.Add(IntToStr(Socket.LocalPort)+'localport');
end;

Würde mich echt wundern wenn es nicht funktionieren würde.

//Edit: Deine Memo dürfen nicht zwischen lesen und an socket senden stehen.
Wenn es dazwischen steht, kommt bei Trillian nix an, wird an der Verzögerung liegen.
Marko
So`ne Atombombe kann einem den ganzen Tag verderben!
Eine eigene DLL in C++ geschrieben wird meist ein Sklave für mein Delphi/Pascal.
  Mit Zitat antworten Zitat