AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi server connected, kann aber nichts zu client schicken ?!
Thema durchsuchen
Ansicht
Themen-Optionen

server connected, kann aber nichts zu client schicken ?!

Ein Thema von sAibo · begonnen am 6. Mai 2004 · letzter Beitrag vom 30. Okt 2005
Antwort Antwort
sAibo

Registriert seit: 6. Mai 2004
20 Beiträge
 
#1

server connected, kann aber nichts zu client schicken ?!

  Alt 6. Mai 2004, 17:51
Hi,

Ich wollte ein kleines "Chat" Programm schreiben, indem ich über die WinSockets
einfach einen string per "SendText" schicke.

Über ServerSocketClientConnect bzw. ClientSocketConnect geb ich auf jeder seite jeweils die meldung "connected" aus, sobald der Fall, dass sie verbunden sind halt eintritt. Das funktioniert soweit auch.

Über ein Edit Feld kann ich dann auch ohne Probleme Nachrichten zum Server schicken.
Vom Server aus zum Client geht es allerdings nicht...?
Obwohl beides eigentlich identisch ist.

Als Fehler Meldung bekomm ich:
"Eine Anforderung zum Senden oder Empfangen von Daten wurde verhindert, da send Socket nicht verbunden ist und (beim senden über ein Datagrammsocket mit einem sendto-Aufruf) keine Adresse angegeben wurde (10057), auf API'send'"
Keine Adresse angegeben? Ich dachte der Server hat keinen .Host da er keine Adresse braucht, er wartet ja auf einen Clieenten

Ich bedankt mich schonmal im voraus und würd mich freuen wenn mir jemand helfen könnte den Denkfehler in meinem Code zu finden.

Gruß Tobi

Hier der Code
Delphi-Quellcode:
procedure TForm1.serverdisconnectClick(Sender: TObject);
begin
     ServerSocket.Free;
end;

procedure TForm1.serverconnectClick(Sender: TObject);
begin
     ServerSocket.Open;
     servermemo.Lines.Add('...wartet auf Client');
end;

procedure TForm1.ServerSocketClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
  MSG: String;
begin
  MSG:=Socket.ReceiveText; //Der Text wird in der Variable MSG gespeichert
  servermemo.Lines.Add(MSG); //Der Text wird einem MemoFeld hinzugefügt
end;

procedure TForm1.clientconnectClick(Sender: TObject);
begin
     ClientSocket.Host:='127.0.0.1';
     ClientSocket.open;
end;

procedure TForm1.clientdisconnectClick(Sender: TObject);
begin
     ClientSocket.Free
end;

procedure TForm1.clientsendClick(Sender: TObject);
begin
     ClientSocket.Socket.SendText(clienttext.text);
end;

procedure TForm1.ServerSocketClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
     servermemo.Lines.Add('***Connected.');
end;

procedure TForm1.ClientSocketConnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
     clientmemo.Lines.Add('***Connected.');
end;

procedure TForm1.serversendClick(Sender: TObject);
begin
     ServerSocket.Socket.SendText(servertext.text); // !!! Hier kommt der Fehler !!!


end;

procedure TForm1.ClientSocketRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
  MSG2: String;
begin
  MSG2:=Socket.ReceiveText; //Der Text wird in der Variable MSG gespeichert
  clientmemo.Lines.Add(MSG2); //Der Text wird einem MemoFeld hinzugefügt
end;
  Mit Zitat antworten Zitat
Jörn

Registriert seit: 5. Sep 2003
Ort: Helmstedt
312 Beiträge
 
#2

Re: server connected, kann aber nichts zu client schicken ?!

  Alt 6. Mai 2004, 18:22
serversocket1.Socket.Connections[0].SendText('bla'); So musst du das versenden. Die Zahl nach Connections ist die Kennnummer des Clients der die Nachricht bekommen soll. Wenn alle die Nachricht erhalten sollen, musst du das mit einer Schleife machen.
  Mit Zitat antworten Zitat
sAibo

Registriert seit: 6. Mai 2004
20 Beiträge
 
#3

Re: server connected, kann aber nichts zu client schicken ?!

  Alt 6. Mai 2004, 20:57


danke für die schnelle antwort
des problem wäre somit erstmal gelöst
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#4

Re: server connected, kann aber nichts zu client schicken ?!

  Alt 6. Mai 2004, 22:32
Hi,

deshalb sollte man besser mit den Indys arbeiten, da hat man im Server für jede Connection einen eigenen Thread.
Außerdem bietet Indy jede Menge andere Vorteile gegenüber den normalen Sockets, wurden hier im Forum schon alle erwähnt !

Gruß Jan
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
sAibo

Registriert seit: 6. Mai 2004
20 Beiträge
 
#5

Re: server connected, kann aber nichts zu client schicken ?!

  Alt 10. Mai 2004, 18:35
Hi, ich habe mich noch nicht wirklich mit Indis auseinander gesetzt. Nur kurz über das ein oder andere Tutorial drüber gelesen.
Das kleine Problem, dass ich da hatte ist aber zudem für nen Projekt für die Schule und dort arbeiten wir mit Delphi 5 und da sind soweit ich weiß die Indikomponenten noch nicht dabei.
Also auf jeden Fall bei unserer Version nicht.

Trotzdem danke
Gruß Tobi
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#6

Re: server connected, kann aber nichts zu client schicken ?!

  Alt 10. Mai 2004, 18:47
Zitat von DataCool:
Hi,

deshalb sollte man besser mit den Indys arbeiten, da hat man im Server für jede Connection einen eigenen Thread.
Außerdem bietet Indy jede Menge andere Vorteile gegenüber den normalen Sockets, wurden hier im Forum schon alle erwähnt !

Gruß Jan
Wenn man weiß wie bietet auch TServerSocket pro Verbindung einen Thread. Dafür muss man mit blockierenden Sockets arbeiten. Wenn ich mich nicht irre arbeiten die Indy-Komponenten ausschließlich mit blockierenden Sockets. Deshalb gibt es wohl auch die Indy-Komponente TIdAntiFreeze.
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Baer

Registriert seit: 30. Okt 2005
14 Beiträge
 
#7

Re: server connected, kann aber nichts zu client schicken ?!

  Alt 30. Okt 2005, 16:05
Ma ne frage , wie kann man vom indy server dem client etwas schicken ?
  Mit Zitat antworten Zitat
Benutzerbild von Net7
Net7

Registriert seit: 22. Jun 2004
Ort: Lauenburg
161 Beiträge
 
Delphi 7 Professional
 
#8

Re: server connected, kann aber nichts zu client schicken ?!

  Alt 30. Okt 2005, 20:40
Zitat von DataCool:
Hi,

deshalb sollte man besser mit den Indys arbeiten, da hat man im Server für jede Connection einen eigenen Thread.
Außerdem bietet Indy jede Menge andere Vorteile gegenüber den normalen Sockets, wurden hier im Forum schon alle erwähnt !

Gruß Jan
Also wenn er sich gerade frisch mit Sockets beschäftigt sollte er die "normalen" Sockets auch nehmen und mit ihnen rumexperimentieren. Somit lernt er wie das ganze funktioniert.




Bei den Indys lernt man fast nix mehr, weil die einem schon viele Sachen abnehmen.

Wenn ich mich nicht irre, haben die "normalen" Socket auch für jede Verbindung einen eigenen Thread.


Und die Indys haben keine Vorteile, das ist Blödsinn, ich nenne sowas zusätzlich hinzugefügte Funktionen.
Marko
So`ne Atombombe kann einem den ganzen Tag verderben!
Eine eigene DLL in C++ geschrieben wird meist ein Sklave für mein Delphi/Pascal.
  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 03:16 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