| Autor |
Beitrag |
Paddymann
      
Beiträge: 58
Delphi 5 Professional
|
Verfasst: Do 01.06.06 19:24
Hi!
Ich möchte einen Chat programmieren. Dazu habe ich erstmal ganz banal angefangen wie man unten sieht(weil ich Probleme erwartet habe). Im Netzwerk funktionieren Server und Client prima (Label1 wird zu Connected). Wenn ich das jetztz allerdings über das Internet probiere bekomme ich den Fehler "Asynchroner Socket-Fehler 10061". Ich muss dazu sagen, dass ich hinter einem Router "sitze". Mit whatismyip.com habe ich meine IP rausgefunden und dann in das Edit-Feld eingetragen. Nachdem das nicht funktioiert hat hab ich in meinem Router die Ports geforwardet und den Dienst auch im DMZ eingetragen - aber der selbe Fehler. Kennt wer ne Lösung?
Hier mal noch der Code:
Client:
Delphi-Quelltext 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:
| const Server_Port = 12345; type TForm1 = class(TForm) Button1: TButton; ClientSocket1: TClientSocket; Edit1: TEdit; procedure Button1Click(Sender: TObject); private public end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject); begin ClientSocket1.Port := Server_Port; ClientSocket1.Host := Edit1.Text; ClientSocket1.Open; end;
end. |
Und der 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:
| const Server_Port = 12345; type TForm1 = class(TForm) ServerSocket1: TServerSocket; Label1: TLabel; procedure FormCreate(Sender: TObject); procedure ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket); private public end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject); begin ServerSocket1.Port := Server_Port; ServerSocket1.Open; end;
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin Label1.Caption := 'Connected'; end;
end. |
danke für eure hilfe und mfg
Patti Moderiert von raziel: Topic aus Sonstiges (Delphi) verschoben am Do 01.06.2006 um 21:32
|
|
The Who
      
Beiträge: 25
Win XP Prof
D3 Prof, D8, D7E
|
Verfasst: Do 01.06.06 20:03
Geht der Server vieleicht per Router rein ?
Also ich meine ob vieleicht ne Firewall die ganze Sache blockt ?
|
|
Born-to-Frag
      
Beiträge: 1094
Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
|
Verfasst: Do 01.06.06 20:28
Bei nem Router würde ich eher auf Portforwarding tippen 
_________________ Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum.
|
|
Paddymann 
      
Beiträge: 58
Delphi 5 Professional
|
Verfasst: Do 01.06.06 20:42
Ja die Firewall hab ich alle IPs durchgeben lassen und Portforwarding hab ich für Pot 12345 ja auch schon gemacht...
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 01.06.06 21:00
Moin!
Zunächst mal dieser Vorschlag im Server-Code:
Delphi-Quelltext 1: 2: 3: 4:
| procedure TForm1.ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin Label1.Caption := Socket.RemoteAddress; end; |
Damit siehst du die IP des Clients, der da einen Connect geschafft hat.
Dann zu dem Problem: Was genau versuchst du denn da? Du startest den Server und jemand, der nicht in deinem LAN ist (sondern an seinem PC zuhause sitzt) versucht einen Connect? Oder nimmst du den Client und gibst einfach nur die öffentliche IP deines Routers ein, um einen Internet-Connect zu simulieren?
Ersteres sollte klappen, wenn dein Portforwarding korrekt ist (geht nur wirklich gut mit festen IP-Adressen, übrigens), letzteres sollte in den meisten Fällen nicht klappen, weil das Router OS das vermutlich filtert - was dann so erstmal OK ist.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
Zuletzt bearbeitet von Narses am Mo 18.02.08 02:46, insgesamt 1-mal bearbeitet
|
|
Born-to-Frag
      
Beiträge: 1094
Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
|
Verfasst: Do 01.06.06 21:07
Oder sagst du zu deinem Freund der bei sich zu Hause ist, dass der zu 192.168.xxx.xxx connecten soll? 
_________________ Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum.
|
|
Paddymann 
      
Beiträge: 58
Delphi 5 Professional
|
Verfasst: Do 01.06.06 21:10
Danke für die Antwort Narses.
| Zitat: |
Dann zu dem Problem: Was genau versuchst du denn da? Du startest den Server und jemand, der nicht in deinem LAN ist (sondern an seinem PC zuhause sitzt) versucht einen Connect?
|
ja genau das versuche ich. Halt nicht im LAN sondern über das Internet.
| Zitat: |
Oder nimmst du den Client und gibst einfach nur die öffentliche IP deines Routers ein, um einen Internet-Connect zu simulieren?
|
Stimmt ebenfalls wieder. Ich lasse Server und Client auf meinem PC laufen. Habe das aber auch schon "richtig" veruscht, dass funktioniert ebenfalls nicht.
Mein Port-Forwarding sollte richtig sein. Habe Ein- und Ausgehende verbindungen geforwardet.
Meinst du ich sollte mir mit DynDNS erstmal eine "feste" IP Addresse holen und, dass dann nochmal von aussen probieren, Oder wie?
thx und mfg
Patti
//Edit: @ Born To Frag: Nein ich versuche auch nicht die LAN ip zu connecten!
Zuletzt bearbeitet von Paddymann am Do 01.06.06 21:21, insgesamt 1-mal bearbeitet
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 01.06.06 21:20
Moin!
Paddymann hat folgendes geschrieben: | | ja genau das versuche ich. Halt nicht im LAN sondern über das Internet. |
OK. Das du die korrekte Adresse verwendest unterstelle ich mal (also du an deinem Rechner stellst diese per www.whatismyip.com fest und gibst sie deinem Freund, der diese in das Programm eingibt und damit einen Connect versucht).
Paddymann hat folgendes geschrieben: | | Ich lasse Server und Client auf meinem PC laufen. |
Dann mußt du "localhost" und dein Freund die öffentliche IP des Routers verwenden; davon gehe ich jetzt mal aus, das ihr das auch so macht.
Paddymann hat folgendes geschrieben: | | Habe das aber auch schon "richtig" veruscht, dass funktioniert ebenfalls nicht. |
Was genau möchtest du mir damit sagen...
Paddymann hat folgendes geschrieben: | | Mein Port-Forwarding sollte richtig sein. Habe Ein- und Ausgehende verbindungen geforwardet. |
Ich fürchte leider, irgendwas stimmt mit dem Portforwarding trotzdem noch nicht. Was für ein Router? Beschreib mal ganz genau, was du da gemacht hast, mit den verwendeten Adressen.
Paddymann hat folgendes geschrieben: | | Meinst du ich sollte mir mit DynDNS erstmal eine "feste" IP Addresse holen und, dass dann nochmal von aussen probieren, Oder wie? |
Nein, das meinte ich nicht; der DNS-Alias ist zwar eine gute Idee, weil er einiges leichter macht, aber das muss auch ohne gehen. Mit festen IPs meine ich die in deinem LAN.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
Zuletzt bearbeitet von Narses am Mo 18.02.08 02:46, insgesamt 1-mal bearbeitet
|
|
Paddymann 
      
Beiträge: 58
Delphi 5 Professional
|
Verfasst: Do 01.06.06 21:26
Es tut mir leid Narses, dass du dir noch soviel arbeit gemacht hast aber du scheinst recht gehabt zu haben.
Habe mitm Kumpel nur die erste Port-Forwarding Einstellung getestet und die ging ncith. Spätere Einstellungen habe ich von meinen PC allein aus getetstet. Jetztz habe ich das noch mal mitm Kumpel probiert und du hattest recht das OS scheint das geblockt zu haben.
Es funktioniert jetztz.
Danke
mfg
patti
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 01.06.06 21:32
Moin!
Fein, wenn´s funktioniert.
Markierst du den Thread dann noch entsprechend, wenn dein Problem gelöst ist? Danke.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Fighter#1
      
Beiträge: 787
Win XP, Ubuntu 8.04
Turbo Delphi 2006, Delphi 2005 Pe, Delphi 5 Pe, Netbeans 6.1, Eclipse, Microsoft VisualC#, Dev C++, PHP, HTML, CSS
|
Verfasst: Fr 02.06.06 11:59
Ich hab auch noch eine Frage, bei meinem Netgear Router sind die Ports für mein Programm, zu testzwecken ein simpler Chat sowohl eingehend, alsauch ausgehend freigegeben.
Was muss ich machn, damit das jetzt auch im I-Net tut.
Klar meine ip hab ich servergestartet, Clientgestartet, nix!
Das OnConnect Ereignis des Servers wird nicht gestartet.
Auch funktioniert die Chan-Funktion, wie zu erwarten, des ClientProgramms nicht.
Der Client bring auch den 10061 Error (Server nicht gefunden)
Also wie gesagt Ports sind freigeschaltet, was muss ich zusätzlich machen?
_________________ Wer andere beherrscht ist stark,
wer sich selbst beherrscht ist mächtig. Lao Tse
|
|
jasocul
      
Beiträge: 6395
Erhaltene Danke: 149
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Fr 02.06.06 12:32
Hallo Fighter,
bitte erstelle für jede deiner Fragen ein separates Topic, da die Diskussion mehrerer Fragen in einem Topic für gewöhnlich für Verwirrung und Durcheinander sorgt. Insbesondere, wenn es nicht dein eigenes Topic ist! Daher:
*geschlossen*
Viele Grüße,
Peter
|
|