Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi chat funktioniert nicht übers inet =( (https://www.delphipraxis.net/24864-chat-funktioniert-nicht-uebers-inet-%3D.html)

alanblack 27. Jun 2004 19:20


chat funktioniert nicht übers inet =(
 
Hallo Leute,

ich habe es doch noch geschafft mir einen kleine chat zu schreiben ..
ich würd aber damit auch gerne übers inet chatten können mit anderen leuten die das prog benutzen.
Wenn ich den Server geöffnet habe und nochmal die exe öffne und auf client gehe und die ip (vom inet die ich auf www.meine-ip.de.vu auslese) eintippe verbindet er nicht .. weiß einer wieso?

Hier einmal der code:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
// Server
 form1.Caption := 'Server';
ServerSocket1.Open;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
// client
form1.Caption := 'Client';
ClientSocket1.Host := edit2.Text;
ClientSocket1.open;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
if form1.caption='Server' then
begin
Memo1.lines.add(edit1.text);
serversocket1.Socket.Connections[0].SendText(edit1.text);
edit1.text := '';
end;

if form1.caption='Client' then
begin
Memo1.lines.add(edit1.text);
clientsocket1.Socket.SendText(edit1.text);
edit1.text := '';
end;

end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
begin
memo1.Lines.Add('Client:' + socket.receivetext);
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
begin
memo1.Lines.Add('Server:' + socket.receivetext);
end;

end.
Vielen Dank schonmal im vorraus

mfg alanblack

KingofWerlte 27. Jun 2004 20:03

Re: chat funktioniert nicht übers inet =(
 
solltest evtl. mal nicht deine Internet IP nehmen sondern deine normale lokale IP

MrKnogge 27. Jun 2004 20:24

Re: chat funktioniert nicht übers inet =(
 
Zitat:

Zitat von KingofWerlte
solltest evtl. mal nicht deine Internet IP nehmen sondern deine normale lokale IP

Die lokale IP bringt aber nicht's, wenn er übers Internet chatten möchte.

Sitzt du eventuell hinter einem router ?

KingofWerlte 27. Jun 2004 20:35

Re: chat funktioniert nicht übers inet =(
 
sicher bringt einem die lokale ip was..bei meinem funktioniert es auch..allerdings nur dann wenn man nicht hinter einem router sitzt..das ist das problem

S2B 27. Jun 2004 20:38

Re: chat funktioniert nicht übers inet =(
 
:shock:
Wenn er die lokale IP-Adresse nimmt, dann kann er nicht herausfinden, ob der Chat übers Internet geht oder nicht... :wink:

alanblack 27. Jun 2004 20:39

Re: chat funktioniert nicht übers inet =(
 
Hi leute,

also ich habe ISDN - hab also keinen router. Die Firewall hab ich auch ausgeschalten und habs probiert funzte allerdings auch nicht =(

weiß jemand sonst noch was?

MrKnogge 27. Jun 2004 20:44

Re: chat funktioniert nicht übers inet =(
 
@KingofWerlte
Was meinst du wieviele (millionen) die gleiche lokale Ip haben ?

Für eine Verbindung brauhst du eine eindeutige IP -> Die IP die du von Provider bekommst.

Schon mal
Delphi-Quellcode:
ClientSocket1.Active := true;
serversocket1.Active := true;
probiert ?

Andernfalls wechsel mal deine Port's

S2B 27. Jun 2004 20:46

Re: chat funktioniert nicht übers inet =(
 
Also als KingOfWerlte und ich den Chat von Ulti mal ausprobieren wollten (der basiert auch auf den Sockets), da ging es auch nicht, obwohl wie die Firewalls aushatten! Vielleicht kannst du dich ja mit den Indy's aufreunden, damit geht es ganz bestimmt! :wink:

KingofWerlte 27. Jun 2004 20:51

Re: chat funktioniert nicht übers inet =(
 
:roll: hmm ich will ja nichts sagen aber wenn mehrere leute die gleiche Lokale IP haben und so ins Internet gehen gibts ein paar probleme
Zitat:

jedem Quadratmeter der Erde können 1.500 IP-Adressen zugewiesen werden
S2B lag daran das ich hinterm Router sitz..hab das mal auf einem server ohne router getestet..da ging es ohne probleme auch übers internet

MrKnogge 27. Jun 2004 20:59

Re: chat funktioniert nicht übers inet =(
 
Zitat:

Zitat von KingofWerlte
Zitat:

jedem Quadratmeter der Erde können 1.500 IP-Adressen zugewiesen werden

Kommt auf die Art deiner Konfiguration an, ClassA, ClassB oder ClassC Netze, aber das gehört hier nicht her.

Mit wem hast du'n dein Chat getestet ?

Ich hab den Code ebenfalls mal mit nem Freund getestet, keine Probleme.

alcaeus 27. Jun 2004 21:29

Re: chat funktioniert nicht übers inet =(
 
[OT]
Zu den IP-Adressen: Die Adresse 192.168.0.1 wird auf der Welt sicherlich ein paar mal vorkommen. Das ist aber deswegen, da die IP-Adresse eine der frei verfügbaren IP-Adressen ist. Bekommst du vom Provider eine IP, so ist diese ganz sicher eindeutig.
[/OT]

Zu der Socket/Indy-Diskussion: Es ist sehr wohl möglich, mit den Sockets einen internetfähigen Chat zu machen. Ich habe schon mehrere Programme geschrieben, die auf diese Weise funktionierten. Ein Problem gibts nur, wenn der Server hinter einem Proxy/Router liegt. Dann ist ein Verbinden zum Server praktisch unmöglich.

Bei deinem Problem müsstest du versuchen, andere Ports zu verwenden. Generell gilt, dass du Ports ab 1024 verwenden kannst. Vom Code her dürfte es allerdings kein Problem sein.

Greetz
alcaeus

alanblack 27. Jun 2004 21:34

Re: chat funktioniert nicht übers inet =(
 
hi,

wie oben schon genannt habe ich keienn Router..

Ich hab das jetzt mal ausprobiert und es mit den Port 1024 probiert, allerdings funktionierte das auch nicht.

Könntest du vielleicht deinen code von deinem chat posten? Wäre sehr nett.

mfg alanblack

alcaeus 27. Jun 2004 21:38

Re: chat funktioniert nicht übers inet =(
 
Ich würde dir ja gerne etwas Source geben, allerdings ist dieser seit dem letzten Festplattencrash unauffindbar :stupid:
Ich habe jedoch eine Version des Chats veröffentlicht. Probier mal mit disem Chat was zu machen, wenn der auch nicht funktioniert dann ists nicht die Software sondern was anderes.
Server/Client Chat für Windows

Greetz
alcaeus

alanblack 27. Jun 2004 21:46

Re: chat funktioniert nicht übers inet =(
 
Hi,

wollts mir runterladen irgentwie gehen die links nich ausser die txt datei

fehler:

Zitat:

Forbidden
You don't have permission to access /reinhard.braun/dloads/chat/chatserver.zip on this server.

alcaeus 27. Jun 2004 21:48

Re: chat funktioniert nicht übers inet =(
 
:roll: :wall: Habs schon wieder vergessen zu sagen: Rechtsklick->Ziel speichern unter

Gretisserver fungieren nämlich nicht gern als Datenspeicher...

Greetz
alcaeus

alanblack 27. Jun 2004 22:03

Re: chat funktioniert nicht übers inet =(
 
Hm,

also ich starte den server. (port 23 wie vorgeschlagen und habs auch mit 1024 probiert) dann öffne ich den clienten und tippe meine inet ip ein. gebe den port ein und meinen nicknamen auch. klicke auf ok nach ner weile sagt der:

Zitat:

<22:59:26> Couldn't connect to 217.2.36.139: no server found!
woran kann das liegen?

mfg alan

MrKnogge 28. Jun 2004 05:42

Re: chat funktioniert nicht übers inet =(
 
Es könnte daran liegen, weil du beide Programme auf dem selben PC benutzen möchtest, gibd doch den Clienten, oder den Server mal nem Kumpel von dir und probier es nochmal.

alcaeus 28. Jun 2004 06:27

Re: chat funktioniert nicht übers inet =(
 
Bei meinem Chat kann das nicht der Grund sein. Ich habe ihn so konzipiert, dass der Server auch auf einem PC laufen kann, der zur gleichen Zeit als Chat-Client genutzt wird. Hier scheint es für mich eher ein Problem mit der IP oder einem Router oder Firewall zu geben. Es ist mir jedoch unerklärlich, nachdem alanblack ja keinen Router oder Firewall hat.

Greetz
alcaeus

PS: Probier mal, die Verbindung zum Server über localhost oder 127.0.0.1 aufzunehmen

fiasko 28. Jun 2004 07:12

Re: chat funktioniert nicht übers inet =(
 
Zitat:

Zitat von alanblack
...die ip (vom inet die ich auf www.meine-ip.de.vu auslese) eintippe verbindet er nicht ..

Vorschlag: finde deine IP-Adresse mittels ipconfig /all von der Kommandozeile oder winipcfg (je nach Win Version) raus - evtl. hast du einen transparenten Proxy bei deinem Provider so das die diese komische .de.vu Seite nicht deine IP sondern die des Proxy Servers liefert.

MrKnogge 28. Jun 2004 09:46

Re: chat funktioniert nicht übers inet =(
 
Hohl dir deine IP lieber mal so:

Delphi-Quellcode:
uses ..., WinSock;

...

function getIPs: TStrings;
type
  TaPInAddr = array[0..10] of PInAddr;
  PaPInAddr = ^TaPInAddr;
var
  phe: PHostEnt;
  pptr: PaPInAddr;
  Buffer: array[0..63] of Char;
  I: Integer;
  GInitData: TWSAData;
begin
  WSAStartup($101, GInitData);
  Result := TstringList.Create;
  Result.Clear;
  GetHostName(Buffer, SizeOf(Buffer));
  phe := GetHostByName(buffer);
  if phe = nil then Exit;
  pPtr := PaPInAddr(phe^.h_addr_list);
  I   := 0;
  while pPtr^[I] <> nil do
  begin
    Result.Add(inet_ntoa(pptr^[I]^));
    Inc(I);
  end;
  WSACleanup;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  ComboBox1.Items := getIPs;
end;

Spurius 28. Jun 2004 15:49

Re: chat funktioniert nicht übers inet =(
 
Und wie ist es, wenn man hinter nem Router sitzt und nen Server aufmachen will?
Gibts da keine Möglichkeit?

alanblack 28. Jun 2004 17:42

Re: chat funktioniert nicht übers inet =(
 
Hi,

über die localhost Ip 127.0.0.1 funktionierts.

Andere Ip Anzeige Seiten zeigen mir die gleiche IP an wie die von meine-ip.de.vu

Hm woran kann das jezt liegen?

Viele Grüße alanblack

alcaeus 28. Jun 2004 18:19

Re: chat funktioniert nicht übers inet =(
 
Zitat:

Zitat von fiasko
Zitat:

Zitat von alanblack
...die ip (vom inet die ich auf www.meine-ip.de.vu auslese) eintippe verbindet er nicht ..

Vorschlag: finde deine IP-Adresse mittels ipconfig /all von der Kommandozeile oder winipcfg (je nach Win Version) raus - evtl. hast du einen transparenten Proxy bei deinem Provider so das die diese komische .de.vu Seite nicht deine IP sondern die des Proxy Servers liefert.

Hast du das schon probiert? Vergleiche die Ergebnis-IP mit jener, die du auf meine-ip.de.vu kriegst. Anschließend probier den Server nochmals.

Greetz
alcaeus

Net7 28. Jun 2004 18:31

Re: chat funktioniert nicht übers inet =(
 
Und wie ist es, wenn man hinter nem Router sitzt und nen Server aufmachen will?
Gibts da keine Möglichkeit?


Jop die gibt es, sowas nennt man IP-Forwarding oder Virtual Server dabei teilt man den Router mit, welchen Rechner er ansprechen soll wenn ein Verbindungsversuch zu einem bestimmten Port festgestellt wird.
Reine Einstellungsache. :gruebel: Ob das immer notwendig is sei dahingestellt, bei meinem Server Chatproggi (funzt auch über internet :mrgreen: )brauch ichs nicht machen. Aber bei meinem Bruder zb. (hat einen anderen Router) muss er es explezit genehmigen.


kleiner Nachtrag: falls du es versuchst, dich selber über deine Provider IP zu connecten wird das misslingen, jedenfals war das bei mir so, egal was ich eingestellt habe. Local funzte es aber prächtig. Um zu probieren ob es daran liegt, gib das proggi n Kumpel und probiert es dann übers Netz.

Spurius 28. Jun 2004 20:59

Re: chat funktioniert nicht übers inet =(
 
Also welche IP hernehmen? die Lokale oder die, die auf www.whatismyip.com oder wie auch immer angezeigt wird?

MrKnogge 28. Jun 2004 23:17

Re: chat funktioniert nicht übers inet =(
 
Nicht die lokale, deine Internet-IP.

Spurius 29. Jun 2004 15:06

Re: chat funktioniert nicht übers inet =(
 
Ich hab des jetzt mit nem einfachen Prog ausprobiert und im lokalen Netztwerk klappt es.
Jetzt hab ich das Prog einem Freund gegeben, der hinter einem Router sitzt, genau wie ich.
Der Server läuft bei mir, er hat einen Client.
Ich hab den Server gestartet und ihm die ip von www.whatismyip.de geschickt.
Es hat jedoch nicht geklappt, danach hab ich ihm die ip gegeben, die bei ipconfig unter
IP-ADRESSE steht, damit gings auch nicht.
Im lokalen Netz ging es mit der IP von www.whatismyip.de auch nicht, mit der von ipconfig
schon.
Im Router hab ich den benutzten Port geforwarded, was mach ich falsch?

Net7 29. Jun 2004 16:14

Re: chat funktioniert nicht übers inet =(
 
hmmm welchen port benutzt du??

Spurius 29. Jun 2004 17:05

Re: chat funktioniert nicht übers inet =(
 
Port 5600

Spurius 1. Jul 2004 14:17

Re: chat funktioniert nicht übers inet =(
 
Geht leider immer noch nicht...

fiasko 1. Jul 2004 14:28

Re: chat funktioniert nicht übers inet =(
 
Zitat:

Zitat von Spurius
Im Router hab ich den benutzten Port geforwarded, was mach ich falsch?

Du sitzt also auch hinter'nem Router? Kannst du dir nicht von diesem direkt sagen lassen was seine oeffentliche IP-Adresse ist?

Spurius 1. Jul 2004 15:30

Re: chat funktioniert nicht übers inet =(
 
Hinter dem Router sind aber mehrere PC's. Da ist meiner ja nicht genau bestimmt :(

fiasko 1. Jul 2004 20:16

Re: chat funktioniert nicht übers inet =(
 
Was ich meinte ist: ich schätze mal das ist ein Hardware-Router der über ne WWW-Seite oder sowas konfiguriert wird. Gibt es da nicht irgendwo die Info welche öffentliche IP er gerade bekommen hat?

Torsten Borstensohn 1. Jul 2004 20:25

Re: chat funktioniert nicht übers inet =(
 
Ich denke, für jeden Client, der sich einloggen will, muss eine neue Winsock-Instanz gebildet werden, also so eine Art Array. Ich habe dazu in einem anderen Forum mal den Code gefunden. Leider kann ich heute die Quelle nicht mehr angeben.

procedure ...
var
i:integer;
sRec : string;
begin
for i := 0 to ServerSocket1.Socket.ActiveConnections-1 do
begin
with ServerSocket1.Socket.Connections[i] do
begin
sRec := ReceiveText;
if sRec <> '' then
begin
Memo1.Lines.Add(RemoteAddress + ' sends :') ;
Memo1.Lines.Add(sRecr);
end;
end;
end;
end;

Spurius 1. Jul 2004 20:34

Re: chat funktioniert nicht übers inet =(
 
Hallo,
ich verwende die Indys. Ich schau mir das Routermenü nochmal genauer an.

Aenogym 1. Jul 2004 20:44

Re: chat funktioniert nicht übers inet =(
 
Mal ein anderer Vorschlag: Die TDXPlay-Komponente aus der DelphiX-Sammlung!
Ich bin auch an normalen TCP-Komponenten gescheitert und greife nun zur DXPlay-Kompo.

Vorteile:
-Keine Client-/Server-Architektur (kann ggf. auch als Nachteil angesehen werden)
-Auf eingehende Daten kann in einem Event reagiert werden.
-Ganz einfache Handhabung

Nur so als Tipp ;)

Aenogym

fiasko 1. Jul 2004 20:48

Re: chat funktioniert nicht übers inet =(
 
Leute, ihr seit OT - habt ihr den Thread mal gelesen worum es hier eigentlich geht :gruebel:

Spurius 2. Jul 2004 11:32

Re: chat funktioniert nicht übers inet =(
 
Hallo,
@Fiasko: Meinst du mich?
Ich hab nochmal im Routermenü nachgeschaut, aber bin nicht weitergekommen.

fiasko 2. Jul 2004 11:40

Re: chat funktioniert nicht übers inet =(
 
Ne ich meinte die anderen 2 Postings...

Torsten Borstensohn 4. Jul 2004 13:32

Re: chat funktioniert nicht übers inet =(
 
Der Server muss für jede Anfrage eines Client einen neuen Thread bilden:

http://www.howtodothings.com/showart...sp?article=522

"How do we handle more than one client requests at a time?

The answer is to spawn a new thread for each client request. This can be achieved by setting the ServerType property to stThreadBlocking. Does spawning and destroying a thread for each client request an overhead? Yes. Obviously. But if our application design requires it, then there is no other way; you have to have that overhead. Can we reduce that overhead of creating and destroying threads? Yes. We can. How? Cache those threads. Right.
The ThreadCacheSize property serves that purpose. The default value is 10 but this value depends on your client application needs. You should be very careful in setting this value. If you set it to a maximum value, you will end up in memory problems. If you set it to a very low value, the client will have a wait time for each request. So you have to determine a best value based on the client statistics.

If the client requests are coming one at a time, then you can set the ServerType property to stNonBlocking."


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:50 Uhr.
Seite 1 von 2  1 2      

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