| Autor |
Beitrag |
Xenomorph150
Hält's aus hier
Beiträge: 9
Win 2000
Delphi 7, VB 6.0
|
Verfasst: Mo 13.02.06 09:25
Hallo Leute,
für ein Schulprojekt soll ich einen Datenaustausch (Chat) zwischen zwei PCs realisieren.
Rahmenbedingungen dafür sind Delphi 7 und die Indy Komponeten (Version egal).
Da ich für die Version 10 bzw. 10.1.5 kein Tutorial fand, bzw. es mit einem für die Version 8 nicht kompatibel war, nahm ich nun die Version 9.0.19. Ich schrieb mal die Software nach Gut-dünken und dem Tutorial.
Leider wirft er mit jetzt immer eine #10061 Exception "Connection Refused". (beim Server)
Könnte vielleicht einer mir einen Tipp geben, wo der Fehler liegt bzw. hat jemand ein einfaches und gut verständliches Tutorial?
Client
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:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient;
type TForm1 = class(TForm) TCPClient: TIdTCPClient; Button1: TButton; Chatlog: TListBox; Edit1: TEdit; procedure Button1Click(Sender: TObject);
private public end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); begin
with TCPClient do begin Connect; try Chatlog.Items.Add(TCPClient.ReadLn); finally Disconnect; end; end; end;
end. |
Server:
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:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IdBaseComponent, IdComponent, IdTCPServer;
type TForm1 = class(TForm) TCPServer1: TIdTCPServer; procedure FormCreate(Sender: TObject); procedure TCPServer1Execute(AThread: TIdPeerThread); private public end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.TCPServer1Execute(AThread: TIdPeerThread); begin with AThread.Connection do
begin WriteLn('Hello from Basic Indy Server server.'); Disconnect; end; end;
procedure TForm1.FormCreate(Sender: TObject); begin TCPServer1.Active := True; end;
end. |
|
|
digi_c
      
Beiträge: 1905
W98, XP
D7 PE, Lazarus, WinAVR
|
Verfasst: Mo 13.02.06 09:43
Also die den Serverport hast du im Objektinspektor eingestellt?
Ich glaube der Client.Port war der Port der für die ausgehende Kommunikation geöffnet wird und ist nicht der ZielPort des Hosts.
Überprüfe mal am besten erstmal mit netstat -aoder www.sysinternals.com...ilities/TcpView.html ob der Server Port überhaupt geöffnet wird. Wenn dem so ist probier mal mit telnet localhost 666 ein paar Zeilen zu schreiben.
|
|
Xenomorph150 
Hält's aus hier
Beiträge: 9
Win 2000
Delphi 7, VB 6.0
|
Verfasst: Mo 13.02.06 09:50
Danke für den Tipp,
also der Server antwortet schon mal (mit Telnet).
Habe einen Fehler gemacht beim schreiben, der Fehler tritt im CLIENT auf,
nicht im Server wie geschrieben!
Irgendeine Idee?
Ich habe den BoundPort schon auf 666 gelegt.
MFg
Nico
|
|
digi_c
      
Beiträge: 1905
W98, XP
D7 PE, Lazarus, WinAVR
|
Verfasst: Mo 13.02.06 16:28
Firewall z.B. die von XP?
Ich wüßte jetzt nicht wie man da weiter "rein schauen" kann, außer die Verbindungsparameter zu überprüfen(Ziel IP/Port) 
|
|
Xenomorph150 
Hält's aus hier
Beiträge: 9
Win 2000
Delphi 7, VB 6.0
|
Verfasst: Mo 13.02.06 16:49
Hab den Bound Port beim Client jetzt gelöst und nur den normalen Port eingetragen. Alle anderen Einstellungen im Objektinspektor nochmal überprüft. Jetzt klappts.
Vielen Dank!
Nico
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mo 13.02.06 17:16
Moin und  im Forum!
Xenomorph150 hat folgendes geschrieben: | | Ich habe den BoundPort schon auf 666 gelegt. |
Ich möchte nicht versäumen darauf hinzuweisen, dass Portnummern bis einschließlich 1024 für well-known-services reserviert sind; Anwendungen sollten Portnummern oberhalb 1024 verwenden!
cu
Narses
|
|
Xenomorph150 
Hält's aus hier
Beiträge: 9
Win 2000
Delphi 7, VB 6.0
|
Verfasst: Mo 13.02.06 17:27
Hi,
und vielen Dank für die freundliche Begrüssung!
Ja da war noch *irgendwas*, aber da ich grade einfallslos war,
habe ich den guten alten Quake Standardport genommen, da ich mir sicher war,
dass den im moment keine Anwendung in der Schule benutzt.
(Die spielen eh alle nur Blobby Volley ~.~''')
Am Ende wird das natürlich noch geändert,
im moment gings nur darum es überhaupt zum laufen zu bringen,
wobei dies wirklich eine schwere Geburt war (irgendwie machts einem Indy nicht so leicht wie ichs gern hätte ^^').
Dennoch vielen Dank,
ich werde deinen Rat beherzigen!
Nico
|
|
|