Hi Leute, ich habe mal einen kleinen CHat in Delphi versucht, aber der geht noch nicht so ganz. Also, erstmal habe ich das ausprobiert an meinem Computer was zu schreiben und das es am Computer meiner Eltern(der steht ein Stockwerk tiefer)angezeigt wird, das geht aber nicht. Auch nicht umgekehrt!!! Also nehme ich an, das der Client und de Server du Daten nicht übertragen, aber das komische ist, die Dateien werden nicht beim anderen angezeigt, sondern Bei einem selber dann aber gleich 2 mal hintereinander.
Hier erstmal der Quelltext:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DesignText, XPStyler, ScktComp, Menus, BarMenus, CopyRightInfo;
type TForm1 = class(TForm) Button1: TButton; DesignText1: TDesignText; Edit1: TEdit; ColorDialog1: TColorDialog; Button2: TButton; XPStyler1: TXPStyler; ClientSocket1: TClientSocket; ServerSocket1: TServerSocket; BcBarPopupMenu1: TBcBarPopupMenu; Eintrgelschen1: TMenuItem; Edit2: TEdit; CopyRightDialog1: TCopyRightDialog; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); procedure Eintrgelschen1Click(Sender: TObject); procedure ClientSocket1Connecting(Sender: TObject; Socket: TCustomWinSocket); procedure ClientSocket1Disconnect(Sender: TObject; Socket: TCustomWinSocket); procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); private public end;
var Form1: TForm1; a: string;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject); begin CopyrightDialog1.Execute(3000); ColorDialog1.Color := ClWhite;
DesignText1.NewDraw;
ServerSocket1.Port := 12000;
if ServerSocket1.Active = false then begin ServerSocket1.Open; DesignText1.addTextLine('<c>' + inttostr(ColorDialog1.Color) + '</c>' + 'Server online'); end;
if ServerSocket1.Active = true then begin ClientSocket1.Port := 12000; ClientSocket1.Host := 'localhost'; ClientSocket1.Open; end;
ColorDialog1.Color := ClRed; end;
procedure TForm1.Button1Click(Sender: TObject); begin a := Edit1.Text;
if (ClientSocket1.Active) then begin ClientSocket1.Socket.SendText('<c>' + inttostr(ColorDialog1.Color) + '</c>' + a) end else begin DesignText1.AddTextLine('Nicht Verbunden!'); end;
Edit1.Text := ''; end;
procedure TForm1.Button2Click(Sender: TObject); begin if ColorDialog1.Execute then begin ColorDialog1.Color := ColorDialog1.Color; end; end;
procedure TForm1.FormDestroy(Sender: TObject); begin if (ClientSocket1.Active)then begin ClientSocket1.Close; end; end;
procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); var MyMessage: String; i: Integer; begin MyMessage := Edit2.Text + ': ' + Socket.ReceiveText;
ColorDialog1.Color := ColorDialog1.Color; DesignText1.AddSpeedLine('<c>' + inttostr(ColorDialog1.Color)+ '</c>' + MyMessage);
for i := 0 to ServerSocket1.Socket.ActiveConnections - 1 do begin ServerSocket1.Socket.Connections[i].SendText(MyMessage); end; end;
procedure TForm1.Eintrgelschen1Click(Sender: TObject); begin DesignText1.Clear; end;
procedure TForm1.ClientSocket1Connecting(Sender: TObject; Socket: TCustomWinSocket); begin ColorDialog1.Color := ClYellow;
DesignText1.AddTextLine('<c>' + inttostr(ColorDialog1.Color) + '</c>' + 'Verbunden mit ' + 'localhost');
ColorDialog1.Color := ClRed; end;
procedure TForm1.ClientSocket1Disconnect(Sender: TObject; Socket: TCustomWinSocket); begin DesignText1.addTextLine('verbindung getrennt'); end;
procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); begin DesignText1.AddTextLine('<c>' + inttostr(ColorDialog1.Color) + '</c>' + Socket.ReceiveText); end;
end. |
Vielleicht weiß jemand, wie man das behebt.
Achso, DesignText ist eine Komponente, nicht das es da fragen gibt. Fehlermeldungen kommen auch keine, die Daten werden nur nicht übertragen.