![]() |
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: ![]() 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 |
Re: Chat Funktion
Zeig mal den Code bitte.
|
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); |
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:
|
Re: Chat Funktion
Am besten lädst du mal beide Quellcodes vollständig hoch dann kann man dir auch schon mal besser helfen :zwinker:
|
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. |
Re: Chat Funktion
Der Verbindungsaufbau fehlt aber trotzdem. Machst du dass im OI?
|
Re: Chat Funktion
nein....active := true ??
|
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:
aufruf mit:
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;
Delphi-Quellcode:
Grüße,
message_broadcast(form2.serversocket.socket, 'meinText');
Björn |
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 02:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz