Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Chat Funktion (https://www.delphipraxis.net/117683-chat-funktion.html)

Counter909 23. Jul 2008 12:41


Chat Funktion
 
HI


also ich hab in meinem Projekt einen kleinen Chat zwischen nur ZWEI Leuten:

folgendes hab ich gemacht:

Mensch 1 (Server) : startet den Serversocket
Mensch 2 (client) : verbinden sich mit Clientsocket

---> Nachricht: erfolgreich verbunden

soweit alles klar :-)


jetzt gibt es auf beiden Seiten ein MemoFeld und ein Senden Button:

Mensch1 : serversocket1.socket.sendtext ( button.text )
Mensch2 : empfangen := clientsocket1.socket.receivetext
memo1.lines.add ( empfangen ) ;


In dem Moment wo der Text vom Mensch1 abgsand wird, kommt die Fehlermeldung:

http://img501.imageshack.us/img501/3...7231341cf1.jpg
Da steht ja, dass er nicht verbunden ist, aber hab vor die Connection z.B mit einer showmessage geprüft. da sagt er dann, dass er verbunden ist
hoffe das ist verständlich geworden, ansonst fragt gerne nach :-)

vielen dank

mfg
counter

Die Muhkuh 23. Jul 2008 12:42

Re: Chat Funktion
 
Zeig mal den Code bitte.

Counter909 23. Jul 2008 12:48

Re: Chat Funktion
 
welchen willst du denn genau haben ?

sind ja quasi zwei unterschiedliche programme


also das ist vom send-button


Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var text:string;
begin
text:=edit1.Text;
memo1.Lines.Add('Client: '+text+'');
form2.ServerSocket1.Socket.SendText(edit1.text);

mkinzler 23. Jul 2008 12:50

Re: Chat Funktion
 
Wenn dein Auto kaputt ist, bringst du dann auch immer dein Fahrrad in die Werkstatt? Wie soll man die helfen, wenn du die benötigten Details für dich behältst :gruebel:

Mikescher 23. Jul 2008 12:55

Re: Chat Funktion
 
Am besten lädst du mal beide Quellcodes vollständig hoch dann kann man dir auch schon mal besser helfen :zwinker:

Counter909 23. Jul 2008 13:00

Re: Chat Funktion
 
SERVER:

Delphi-Quellcode:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
serversocket1.Active := false;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
serversocket1.Active:= true;
panel1.Color:=cllime;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
serversocket1.Active:= false;
panel1.Color:=clred;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
close;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
ShellExecute(Handle, 'OPEN', 'http://wieistmeineip.de', nil, nil, SW_SHOWNORMAL)
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
var text:string;
begin
 text:= form1.ClientSocket1.socket.ReceiveText ;
 memo1.Lines.Add('Host: '+text+'');
end;

end.


CLIENT:


Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin

 clientsocket1.Address:= edit1.Text;
 clientsocket1.port := strtoint(edit2.Text)//der richtige port ist auf der anderen seite eingestellt
 
 clientsocket1.Active:= true;
 if clientsocket1.Active = true then button1.Font.Color:= cllime;
 
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
close;
end;

procedure TForm1.ClientSocket1Connect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  edit1.Color:= cllime;
  groupbox1.Enabled:=true;              // wird grün, weil er connected ist
end;

procedure TForm1.ClientSocket1Connecting(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  edit1.Color:= clyellow;
end;

procedure TForm1.ClientSocket1Error(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
   ErrorCode:= 0;
   MessageDlg('Cannot connect to Server!', mtError, [mbOk], 0);
   edit1.Color:= clwindow;
end;

procedure TForm1.ChatClick(Sender: TObject);
var text:string;
begin
text:=edit5.Text;
memo1.Lines.Add('Client: '+text+'');
form1.ServerSocket1.Socket.SendText(edit5.text);
end.

mkinzler 23. Jul 2008 13:02

Re: Chat Funktion
 
Der Verbindungsaufbau fehlt aber trotzdem. Machst du dass im OI?

Counter909 23. Jul 2008 13:05

Re: Chat Funktion
 
nein....active := true ??

delphis spassbremse 23. Jul 2008 13:10

Re: Chat Funktion
 
Hallo,

das Problem ist folgendes:

Du kannst nicht mit dem Serversocket einfach ein sendText() benutzen.
Der weiß gar nicht, wohin....

versuchs mal damit:

Delphi-Quellcode:
procedure message_broadcast(socket: TServerWinSocket; text: String);
var i: Integer;
begin
  for i := 0 to socket.ActiveConnections - 1 do
  begin
    socket.Connections[i].SendText(text));
  end;
end;
aufruf mit:

Delphi-Quellcode:
message_broadcast(form2.serversocket.socket, 'meinText');
Grüße,

Björn

Counter909 23. Jul 2008 13:18

Re: Chat Funktion
 
ok das probiere ich dann gleich oder bissel später, weil ich da ja komplett umänder, wegen twinsock, aber schonmal guter tipp :-)


aber der verbindungsaufbau würd mich jetzt nochmal interessieren


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:52 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz