Entwickler-Ecke

Internet / Netzwerk - Sockets: Verbindungsproblem


O'rallY - Fr 26.07.02 14:08
Titel: Sockets: Verbindungsproblem
Ich habe ein Problem mit den Socket Komponenten. Ich habe zwei miteinander vernetzte Computer. Auf einem läuft der Client:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm1.Button1Click(Sender: TObject);
begin
        ClientSocket1.Address := Edit1.Text;
        ClientSocket1.Active := true;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
        Clientsocket1.Socket.Sendtext( 'Hello World');
end;


Auf dem anderen der Server:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
        ShowMessage('Client has connected!');
end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
begin
        ShowMessage( Socket.ReceiveText);
end;


Wenn ich nun versuche, eine Verbindung herzustellen, sprich, ein Klick auf Button1, erhalte ich folgenden Fehler:
Asynchronous socket error 10049.

Ich bitte um Hilfe :( .


DeCodeGuru - Fr 26.07.02 18:52

Verwende beide den gleichen Port? Wird der Prot ggf. von einer anderen Anwendung schon verwendet?


b.brecht - Sa 27.07.02 00:57

Ports checken und sonst mal mit ClientSocket1.Host:=IPADDR.;


M4EiB - Sa 27.07.02 06:24

hast du den server auch aktiviert?

Quelltext
1:
ServerSocket1.Active := true;                    


DeCodeGuru - Sa 27.07.02 10:14

soweit ich mich erinnern kann, hatte ich einen solchen Fehler auch mal, als ich Daten übers Netzwerk mit meinem Programm versendet habe. Damals lag das Problem darin, dass Server die Verbindung gekappt hatte und trotz der bestehenden Verbindung versucht hatte, wieder über den gleichen Port zu verbinden, was dann halt in dem Fehler endete. Nun ja, ich weiss halt, nicht, ob es genau der gleiche Fehler war. Wäre aber ein Ansatz.


O'rallY - Sa 27.07.02 16:45

Danke erstmal für die Hilfe. Ist mir ziemlich peinlich, aber ich habe nicht daran gedacht, mal andere Ports auszuprobieren. :oops: Ich habe den Port auf der Standardeinstellung 0 gelassen. Vermutlich gab es dann einen Konflikt. Auf jedenfall funktionierts jetzt.


O'rallY - Sa 27.07.02 16:48

Aber ich hab noch ne Frage zu den Socks. Gibt es eine Funktion, die es der Server Komponente ermöglicht, rauszufinden, welche IP versucht eine Verbindung aufzubauen?
Klar, man könnte es machen, dass der Client jedesmal seine IP sendet, doch das geht bestimmt viel einfacher!


DeCodeGuru - Sa 27.07.02 20:42

klar geht das. Einfach im OnClientConnect-Ereignis folgenden Code einfügen:


Quelltext
1:
ShowMessage(Socket.RemoteAddress);                    


O'rallY - Mo 29.07.02 09:52

ich danke schön