Entwickler-Ecke
Internet / Netzwerk - TestChat
IceBube - Di 01.05.07 17:41
Titel: TestChat
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
raziel: Topic aus Freeware Projekte verschoben am Di 01.05.2007 um 22:51
IceBube - 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 - Di 01.05.07 17:49
Bei mir funktionierts auch nicht.
IceBube 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 - 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...
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 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 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; ListBox1.Items.Append(Name);
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 ListBox1.Items.Append(Name); end; end;
if clientSocket.Receiveln = 'Message' then begin Memo1.Lines.Append(clientSocket.Receiveln); end; |
lg
Narses - Di 01.05.07 21:27
Moin!
IceBube 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 [
http://www.delphi-library.de/topic_56272.html]. :mahn: ;)
IceBube 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
IceBube hat folgendes geschrieben: |
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
PROTOKOLL ans Herz legen? ;)
cu
Narses
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!