AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Server.Socket.SendText - Socket.SendText - Unterschied?
Thema durchsuchen
Ansicht
Themen-Optionen

Server.Socket.SendText - Socket.SendText - Unterschied?

Ein Thema von Felix015 · begonnen am 12. Apr 2009 · letzter Beitrag vom 12. Apr 2009
Antwort Antwort
Felix015

Registriert seit: 2. Okt 2008
16 Beiträge
 
#1

Server.Socket.SendText - Socket.SendText - Unterschied?

  Alt 12. Apr 2009, 19:28
Also ich bin bei einem Chatprogramm dran, wo man selbst Server erstellen kann und sich dann mit Servern verbinden kann. Verfügbare Server werden dabei auf einem FTP-Server gespeichert, aber das ist nicht so wichtig.
Das Chatprogramm funktioniert auch soweit, bis auf eine Kleinigkeit. Ich habe einmal ein Ereignis in ServerClientRead und einmal ein Ereignis im OnkeyDown des Editfeldes wo die Nachrichten eingegeben werden. In beiden Ereignissen taucht fast die selbe Zeile.
Im ServerClientRead Ereignis:
for i := 1 to server.Socket.ActiveConnections-1 do Socket.SendText(messages); Das funktioniert auch ohne Probleme, der Server empfängt Text und schickt diesen an alle Clients weiter.
Wenn allerdings der Server etwas schreibt, dann wird diese Zeile im OnKeyDown aufgerufen:
for i := 1 to server.Socket.ActiveConnections-1 do server.Socket.SendText(messages); //Server = ServerSocket Es ist also nur das "Server. ..." hinzugekommen, lasse ich das weg, meckert delphi das er SendText nicht kennt. Steht es da wird das prog zwar kompiliert, jedoch kommt immer wenn der Server etwas schreiben will eine exception:

"Eine Anforderung zum Senden oder Empfangen von Daten wurde verhindert, da der Socket nicht verbunden ist und keine Addresse angegeben wurde."

Nach meiner Logik muss also im OnKeyDown dass "Server" weg, aber dann meckert delphi...

Was muss ich machen??

Mfg Felix
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Server.Socket.SendText - Socket.SendText - Unterschied?

  Alt 12. Apr 2009, 20:52
Ehrlich gesagt widerfährt mir jedwede Logik von dir. Der Fehler ist doch eindeutig, warum eine AV auftritt. Wenn keine Verbindung besteht, kann auch nicht gesendet werden.
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
craash

Registriert seit: 23. Nov 2008
Ort: Mühlacker
79 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Server.Socket.SendText - Socket.SendText - Unterschied?

  Alt 12. Apr 2009, 21:02
du musst natürlich auch angeben an wen du senden möchtest.

in server.socket.sendtext('deintext') allein ist ja nicht angegeben an wen du senden willst. je nachdem was du machen willst wäre zB
for i:=0 to server.socket.activeconnections-1 do server.socket.connections[i].sendtext('deintext') eine möglichkeit an alle verbundenen clients zu senden.

korrigiert mich bitte jemand wenn ich da falsch liege aber nur via socket.sendtext() funktioniert nur im OnConnect-/OnRead/etc- Ereignis, da hier eindeutig der zuvor agierende client das ziel ist.


mfg
uses Delphi 5 Std. / TurboDelphi 2006
  Mit Zitat antworten Zitat
Felix015

Registriert seit: 2. Okt 2008
16 Beiträge
 
#4

Re: Server.Socket.SendText - Socket.SendText - Unterschied?

  Alt 12. Apr 2009, 22:47
Ok ich bedanke mich vielmals.

craash's Lösung hat bei mir funktioniert, dankeschön dafür.

Ich hatte gedacht, dass der immer die socketverbindungen immer hochzählt und dann einfach in den gerade angewählten Socket reinschreibt und dass beim entsprechenden Clienten so ankommt.

Also dankeschön nocheinmal

Mfg Felix
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:06 Uhr.
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