AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Delphi Socket components - assynchroner fehler
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi Socket components - assynchroner fehler

Ein Thema von qwertz543221 · begonnen am 6. Jul 2009 · letzter Beitrag vom 6. Jul 2009
Antwort Antwort
qwertz543221
(Gast)

n/a Beiträge
 
#1

Delphi Socket components - assynchroner fehler

  Alt 6. Jul 2009, 20:41
hallo ich möchte zwischen zwei delphi anwendungen - späater auf 2 pcs - daten (im moment noch texte) hin und her senden. dazu verwende ich die tserversocket/tclientsocket.
woran könnte es liegen, dass ich zzt einen asynchronen fehler bekomme?

assynchron heißt doch, dass die eine seite nichts empfängt/senden kann?

Delphi-Quellcode:
procedure TForm1.ComboBox1Select(Sender: TObject);
var i:integer;
begin
i:=combobox1.ItemIndex;
if i=0
  then begin
  art:='Server';
  serversocket1.Port:=600;
  serversocket1.open;
  button1.Enabled:=false;
  end
    else begin
    art:='Client';
    ClientSocket1.Host := edit1.Text; // Setzt die Ip-Adresse des Servers
    clientsocket1.Port:=600;
    ClientSocket1.open; // Verbindet den Clienten



    button1.Enabled:=true;
    end;
form1.Caption:=art;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
art:='';
form1.Caption:='';
memo1.Clear;
memo2.clear;
edit1.Clear;
edit2.Clear;
edit3.Clear;
edit4.Clear;


end;

procedure TForm1.Button1Click(Sender: TObject);
begin

if art='Server'
   then
begin
Memo2.lines.add(Memo1.text);
serversocket1.Socket.Connections[0].SendText(Memo1.text);
memo1.Clear;
end
  else
  if art='Client'
    then
    begin
    Memo2.lines.add(Memo1.text);
    clientsocket1.Socket.SendText(Memo1.text);
    memo1.Clear;
    end;

end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
begin
if art='Server'
  then memo2.Lines.Add('Client:' + socket.receivetext)
    else memo2.Lines.Add('Server:' + socket.receivetext);
end;

procedure TForm1.Button2Click(Sender: TObject);
var i:longint;
begin
clientsocket1.clienttype:=ctblocking;

listbox1.Clear; //Alte Einträge löschen
clientsocket1.Host := edit1.text; //Sagt dem Clientsocket, welcher Host angepingt werden soll
i:=strtoint(edit3.text);
while i<=strtoint(edit4.Text) do
begin
try
clientsocket1.Port := i; // der Port wird gesetzt
clientsocket1.open; //Versuch zu verbinden
clientsocket1.Close; //Sollte man so weit gekommen sein, wird die Verbindung wieder geschlossen
listbox1.Items.add('Port ' + inttostr(i) + ' ist offen'); //Meldung, dass Port offen
application.ProcessMessages; //Messages abarbeiten
except
// Alles ab nun wird ausgeführt, wenn die Verbindung fehlschlug
application.ProcessMessages; //Messages abarbeiten
listbox1.Items.add('Port ' + inttostr(i) + ' ist geschlossen'); //Meldung, dass Port zu
end; // Ende den "Try-Bereiches"
i:=i+1;
end; // Ende der Schleife

end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
clientsocket1.Active:=false;
serversocket1.Active:=false;
end;
Angehängte Dateien
Dateityp: exe clientserver_169.exe (125,8 KB, 3x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

Re: Delphi Socket components - assynchroner fehler

  Alt 6. Jul 2009, 20:52
Zitat von qwertz543221:
assynchron heißt doch, dass die eine seite nichts empfängt/senden kann?
Nene, asynchron ist nur "non blocked". Sendest du Daten über ein "blocking" Socket, friert deine Anwendung so lange ein, bis die Daten gesendet wurden. Das Asynchrone ist, dass das Socket deine Anwendung nicht blockiert. Zudem werden halt per Window Message Events ausgelöst, wenn neue Daten angekommen sind etc, was du beim "blocking" z.b. in einem Thread selbst realisieren musst.

Nenne uns doch bitte mal die Fehler nummer, welche in der Fehlermeldung enthalten ist. Damit lässt sich feststellen, welche Art von Fehler aufgetreten ist.
  Mit Zitat antworten Zitat
qwertz543221
(Gast)

n/a Beiträge
 
#3

Re: Delphi Socket components - assynchroner fehler

  Alt 6. Jul 2009, 20:58
ok danke für die rückmeldung
das ganze ist zwar ein programm - 2x gestartet - aber auf der clientseite zeigt er folgendes an:
Zitat:
windows-socket-fehler: die angeforderte adresse ist in diesem kontext ungültig(10049),auf API 'connect'
der quelltext liegt dem ersten beitrag von mr bei
  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:37 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