AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi IP Adresse von einem Rechner im INet finden
Thema durchsuchen
Ansicht
Themen-Optionen

IP Adresse von einem Rechner im INet finden

Ein Thema von F.W. · begonnen am 2. Jun 2004 · letzter Beitrag vom 12. Jul 2004
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#11

Re: IP Adresse von einem Rechner im INet finden

  Alt 4. Jun 2004, 19:36
Aha! Nagut, dann steht dem Prog ja jetzt nichts mehr im Wege!

Danke!
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#12

Re: IP Adresse von einem Rechner im INet finden

  Alt 5. Jun 2004, 11:26
Doch noch ne Frage: Muss ich meinem Kumpel jetzt die IP meines Routers schicken, oder die meines Rechners, auf dem das Prog gerade läuft?
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#13

Re: IP Adresse von einem Rechner im INet finden

  Alt 5. Jun 2004, 11:31
Zitat von F.W.:
Doch noch ne Frage: Muss ich meinem Kumpel jetzt die IP meines Routers schicken, oder die meines Rechners, auf dem das Prog gerade läuft?
Die des Routers. Im Router musst Du dann eine Port-Weiterleitung zu der IP deines Rechners eintragen. Als Port natürlich der überden dein Chatprogramm kommuniziert.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#14

Re: IP Adresse von einem Rechner im INet finden

  Alt 5. Jun 2004, 14:21
All right!
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#15

Re: IP Adresse von einem Rechner im INet finden

  Alt 5. Jun 2004, 22:25
Ich hab das Prog soweit fertig, dass es die Grundfunktionen erfüllt! Hier ist sind die Stücken aus dem Quellcode, die zur Übertragung von Daten wichtig sind:
Delphi-Quellcode:
procedure TMain.SendBtnClick(Sender: TObject);
begin
 try
   TCPClient.Connect(5);
   TCPClient.WriteLn(BN+': '+MsgEdit.Text);
   WriteMsg(BN+': '+MsgEdit.Text);//BN = Benutzername
   MsgEdit.Clear;
 finally
   TCPClient.Disconnect;
 end;
end;

procedure TMain.TCPServerExecute(AThread: TIdPeerThread);
var
  FS: TFileStream;
  SizeOfIncomingStream: integer;
  S, Fromuser, NameofFile, SizeofStream: String;
begin
 SDia.FilterIndex := 1;
 SDia.DefaultExt := '';
 with AThread.Connection do begin
  try
   S := Readln('', 5);

   if not (Pos('#@#START', S) = 1) then begin
      WriteMsg(S);//WriteMsg -> zum formatierten Hinzufügen in die Richeditkomponente
   end;

   if (Pos('#@#START', S) = 1) then begin
      WriteLog('Empfange Datei!');(*WriteLog-> zum formatierten Hinzufügen von Logbuchnachrichten (auch in die selbe Richedit)*)
      FromUser := CopyFT(S, Pos('|', S)+1, Length(S));
      Write('Sender: '+Fromuser);
      NameofFile := Readln('', 5);
      WriteLog('Dateiname: '+NameofFile);
      SizeofStream := Readln('', 5);
      WriteLog('Größe: '+SizeofStream);
      if MessageBox(Application.Handle, PChar(FromUser+' schickt ihnen die Datei "'+NameofFile+'", die '+SizeofStream+' groß ist.'+#13#10+#13#10+'Wollen sie sie annehmen?'), 'Frage', MB_YESNO) = IDYes then begin
         SDia.FileName := ExtractFileName(NameofFile);//SDia und ODia -> Save/OpenDialog
         if SDia.Execute then begin
            try
              Fs := TFileStream.Create(SDia.Filename, fmCreate or fmShareExclusive);
              SizeOfIncomingStream := ReadInteger;
              WriteLog('Datei wird runtergeladen...');
              ReadStream(fs, SizeOfIncomingStream);
              WriteLog('Transfer erfolgreich abgeschlossen!');
              WriteLog('Datei wurde unter "'+SDia.FileName+'" gespeichert!');
            finally
              Fs.Free;
            end;
         end;
      end;
   end;
  finally
   Disconnect;
  end;
 end;
end;

procedure TMain.SendFileBtnClick(Sender: TObject);
var
  FS: TFileStream;
begin
 if not ODia.Execute then Exit;

 with TCPClient do begin
   FS := TFileStream.Create(ODia.FileName, fmOpenRead or fmShareDenyWrite);
   if MessageDlg('Folgende Datei möchten sie verschicken:'+#13#10#13#10+
                 'Dateiname: "'+ODia.FileName+'"'+#13#10+
                 'Größe: '+MakeSize(FS.Size)+#13#10#13#10+
                 'Möchten sie sie an "'+TCPClient.Host+'" senden?', mtConfirmation, [mbYes, mbNo], 0) = mrNo then Exit;
     Connect;
   try
       OpenWriteBuffer;
     try
       WriteLog('Übertrage Dateiinfos...');
       WriteLn('#@#START|'+BN);
       Writeln(ODia.FileName);
       Writeln(MakeSize(FS.Size));
       WriteLog('Dateitransfer beginnt...');
       WriteStream(fs, true, true, 0);
       CloseWriteBuffer;
       WriteLog('Dateitransfer beendet');
     except
       CancelWriteBuffer;
     raise;
     end;
   finally
     Disconnect;
     FS.Free;
   end;
 end;
end;

function TMain.MakeSize(ASize: Integer): String;//Zum Anzeigen der Größe in einer geeigneten Einheit
var
 I: integer;
 Size2: Real;
 Einheit: String;
begin
 Einheit := 'Bytes';
 Size2 := ASize;
 if Size2 > 1024 then begin
    Size2 := Runde(ASize/1024, 2);
    Einheit := 'KB';
 end;
 if Size2 > 1024 then begin
    Size2 := Runde(Size2/1024, 2);
    Einheit := 'MB';
 end;
 if Size2 > 1024 then begin
    Size2 := Runde(Size2/1024, 2);
    Einheit := 'GB';
 end;

 Result := FloatToStr(Size2)+' '+Einheit;
end;
Das Nachrichten senden funtzt einwandfrei! Aber das Dateiensenden funtzt nicht, manchmal gehts, manchmal nicht.(Habs im LAN probiert) Wenn ich mal keine Textdatei, sondern eine wavdatei verschicke, ist sie Nachher ein bisschen kleiner und man hört nurnoch die Hälfte! Irgendwas scheint falsch zu sein! Ich weiß nicht was da ist!
Manchmal wird zwar irgendwas versendet (beim Dateiversenden), aber es kommt weder eine Botschaft an, noch die Datei!
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#16

Re: IP Adresse von einem Rechner im INet finden

  Alt 12. Jul 2004, 19:23
@PhaTTy: Arbeite gerade mit was ähnlichen, was müsste ich dort jetzt wählen, dynamisch oder statisch? Und wie geht's dann weiter?
Mein Kumpel sollte seine IP hinschicken können, bei ihm ist nichts zu beachten.
Und ich muss meine hinschicken, allerdings ist bei mir noch n Router im Netzwerk, dahinter zwei Rechner, die ich gern beide mit einspannen würde.

Also brauche ich doch sicher 3 dynamische/statische ...?

Danke schonmal!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 02:48 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