Autor Beitrag
IceBube
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 231



BeitragVerfasst: Di 01.05.07 17:41 
Hallo Leute!

Hab einen kleinen Chat geschrieben, nichts großartiges....ich möchte nicht so einen Chat wo man die Ip/port angeben muss, sondern die User sieht.

Ich weiß nicht ob das so funktioniert wie ich es jetzt geschrieben hab, aber ich würds gern wissen.

Wär cool wenn ihr es testen könnts.....ich bin natürlich im chat :)....

mal schaun obs geht

Edit:
[Programm hat nicht funktioniert - habs entfernt....

lg


Moderiert von user profile iconraziel: Topic aus Freeware Projekte verschoben am Di 01.05.2007 um 22:51


Zuletzt bearbeitet von IceBube am Di 01.05.07 17:48, insgesamt 1-mal bearbeitet
IceBube Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 231



BeitragVerfasst: Di 01.05.07 17:47 
Titel: mist...
anscheinend funktionierts nicht, ich hab keine Ahnung wie ich das machen soll, habts ihr da eine idee??
Chryzler
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1097
Erhaltene Danke: 2



BeitragVerfasst: Di 01.05.07 17:49 
Bei mir funktionierts auch nicht.

user profile iconIceBube hat folgendes geschrieben:
anscheinend funktionierts nicht, ich hab keine Ahnung wie ich das machen soll, habts ihr da eine idee??

Zeig mal deinen aktuellen Code.
IceBube Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 231



BeitragVerfasst: Di 01.05.07 18:01 
soo da mal der Code, ich habs ma so vorgestellt das wenn man sich einloggt schickt das Programm an die anderen User, deinen Namen und die sollen, zu dir ihren Namen zurückschicken, dieser dann in der Liste auftaucht. Ich hab meine Ip adresse + port 23 genommen für alle....es wird auch an dem liegen warum es nicht geht, nur welche soll ich sonst nehmen, von den anderen die ip weiß ich ja nicht...man bräuchte eine für alle...damit jeder von jedem es emfängt...

ausblenden volle Höhe Delphi-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:
procedure TForm1.Button1Click(Sender: TObject);
begin
//schicken
client.Connect;
client.Sendln('NewUser');
client.Sendln(Edit1.Text);

Button1.Enabled := false;
edit1.Enabled := false;
Button2.Enabled := true;
exit;
end;


procedure TForm1.Button2Click(Sender: TObject);
begin
if client.Connected = true then
begin
client.Sendln('DeleteUser');
client.Sendln(Edit1.Text);
client.Close;
server.Close;
Button1.Enabled := true;
edit1.Enabled := true;
Button2.Enabled := false;
end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
//Nachricht schicken
client.Sendln('Message');
client.Sendln('['+Edit1.Text+'] '+Edit2.Text);
Edit2.Clear;
Edit2.Focused;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if client.Connected = true then
begin
client.Sendln('DeleteUser');
client.Sendln(Edit1.Text);
client.Close;
server.Close;
Button1.Enabled := true;
edit1.Enabled := true;
Button2.Enabled := false;
end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
if client.Connected = true then
begin
client.Sendln('DeleteUser');
client.Sendln(Edit1.Text);
client.Close;
server.Close;
Button1.Enabled := true;
edit1.Enabled := true;
Button2.Enabled := false;
end;
end;

procedure TForm1.serverAccept(Sender: TObject; ClientSocket: TCustomIpClient);
var Name:string;
begin
if clientSocket.Receiveln = 'NewUser' then
begin
Name := ClientSocket.Receiveln;
//hinzufügen
ListBox1.Items.Append(Name);

//zurückschicken
client.Sendln('NewUsers');
client.Sendln(Edit1.Text);
end;

if clientsocket.Receiveln = 'DeleteUser' then
begin
ListBox1.Items.Delete(ListBox1.Items.Indexof(clientSocket.Receiveln));
end;

if clientsocket.Receiveln = 'NewUsers' then
begin
Name := clientsocket.Receiveln;
if Name <> Edit1.Text then
begin
//hinzufügen
ListBox1.Items.Append(Name);
end;
end;

if clientSocket.Receiveln = 'Message' then
begin
//Neue Nachricht
Memo1.Lines.Append(clientSocket.Receiveln);
end;


lg
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 01.05.07 21:27 
Moin!

user profile iconIceBube hat folgendes geschrieben:
ich möchte nicht so einen Chat wo man die Ip/port angeben muss

Das geht mit TCP nicht, sowas kann man nur mit UDP und dann auch nur im LAN machen (nicht über´s Internet), siehe hier. :mahn: ;)

user profile iconIceBube hat folgendes geschrieben:
ich habs ma so vorgestellt das wenn man sich einloggt

Wo willst du dich denn einloggen, wenn du keine IP:Port angegeben hast... :gruebel: :P

user profile iconIceBube hat folgendes geschrieben:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm1.serverAccept(Sender: TObject; ClientSocket: TCustomIpClient);
begin
if clientsocket.Receiveln = 'NewUser' then
//...
if clientsocket.Receiveln = 'DeleteUser' then
//...
if clientsocket.Receiveln = 'NewUsers' then
//...
if clientsocket.Receiveln = 'Message' then
//...

Ich habe keine Ahnung, was das für eine Komponente ist, aber das geht ganz sicher nicht in dieser Abfolge, und auch ziemlich sicher nicht im Accept-Ereignis eines (WSA-)Sockets! :mahn: :? Darf ich dir ausserdem mal das Stichwort Suche in: Delphi-Library PROTOKOLL ans Herz legen? ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.