AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Chat FTP Server

Ein Thema von kaschte · begonnen am 16. Apr 2006 · letzter Beitrag vom 17. Apr 2006
Antwort Antwort
Seite 5 von 7   « Erste     345 67      
kaschte

Registriert seit: 2. Apr 2006
72 Beiträge
 
#41

Re: Chat FTP Server

  Alt 17. Apr 2006, 12:47
Du bist ein Genie. Und ich ein Holzkopf. Also, jetzt kommt keine Fehlermeldung mehr es passiert einfach nix. Die Datei die sich bereits auf dem Server befindet bleibt leer . Hier noch einmal die beiden Quelltexte:

Delphi-Quellcode:
unit chatpas;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Winsock, ScktComp, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, IdFTP, IdHTTP;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Message: TLabel;
    Sendtext: TEdit;
    Send: TButton;
    Connect: TButton;
    ListBox1: TListBox;
    Nicknametext: TEdit;
    Nickname: TLabel;
    ListBox2: TListBox;
    ServerSocket1: TServerSocket;
    ClientSocket1: TClientSocket;
    IdHTTP1: TIdHTTP;
    procedure ConnectClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Lines.Delete(0);
end;

function GetLocalIPs(const Lines:TStrings):Boolean;
type
  PPInAddr= ^PInAddr;
var
  wsaData: TWSAData;
  HostInfo: PHostEnt;
  HostName: Array[0..255] of Char;
  Addr: PPInAddr;
begin
  Result:=False;
  Lines.Clear;
  if WSAStartup($0102, wsaData)=0 then
  try
    if gethostname(HostName, SizeOf(HostName)) = 0 then Begin
       HostInfo:= gethostbyname(HostName);
       if HostInfo<>nil then Begin
          Addr:=Pointer(HostInfo^.h_addr_list);
          if (Addr<>nil) AND (Addr^<>nil) then
             Repeat
                    Lines.Add(StrPas(inet_ntoa(Addr^^)));
                    inc(Addr);
             Until Addr^=nil;
       end;
    end;
    Result:=True;
  finally
    WSACleanup;
  end;
end;

procedure TForm1.ConnectClick(Sender: TObject);
var idhttp1: TIdhttp;
    parameter: TStringlist;
begin
  if not GetLocalIPs(Listbox2.Items) then
     MessageDLG('Keine IP-Adresse',mtInformation,[mbOK],0);
  Parameter:=TStringlist.Create;
  idhttp1 := TIdhttp.Create(nil);
  parameter.Add('nickname=nicknametext.text');
  parameter.Add('ip=listbox1.items(0)');
  idhttp1.Post('http://sbinder.sb.funpic.de/users.php', parameter);
  idhttp1.Free;
end;

end.
PHP Datei:
Delphi-Quellcode:
<?
$inhalt = $_POST['nickname'] $_POST['ip'];
$filename = 'users.txt';
$handle = fopen($filename, "a")
fwrite($handle, $inhalt);
fclose($handle);
?>
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#42

Re: Chat FTP Server

  Alt 17. Apr 2006, 13:04
Hi!

Zwei Sachen mal vorneweg, bevor man überhaupt nach anderen Sachen sucht:
Du solltest bei der StringList mit Try..Finally arbeiten und sie auch wieder freigeben und außerdem solltest du dir Gedanken über den Umgang mit Strings machen.

Im Moment steht in Nickname z.B. immer drin
nicknametext.text;

Richtigerweise sollte es wohl so aussehen:
parameter.Add('nickname='+nicknametext.text);
Ciao Frederic

P.S. Ein Genie bin ich nicht
Frederic Kerber
  Mit Zitat antworten Zitat
kaschte

Registriert seit: 2. Apr 2006
72 Beiträge
 
#43

Re: Chat FTP Server

  Alt 17. Apr 2006, 13:08
Mir kommt es aber so vor als wärst du ein Genie

Also das mit dem try finall usw. komme ich noch nicht ganz draus aber damit beschäftige ich mich später dann (oder ist das dass Problem???).

Das mit dem Nickname (das +) ändere ich gleich mal, muss das auch bei IP rein?? Achja und stimmt das bei IP das im Klammer ne 0 ist. Hab ich rein gemacht weil bei mir zBs. mehrere IP's laufen, weil ich vmware (Sandboxteil) habe. Mit 0 ist doch die erste Zeile gemeint oder?

EDIT: Was meinst du mit "Gedanken über den Umgang mit Strings"?
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#44

Re: Chat FTP Server

  Alt 17. Apr 2006, 13:11
Hi!

Ja, bei IP musst du das auch ändern.
0 gibt auch rein theoretisch die erste Zeile an, nur von welcher Listbox überhaupt? Du rufst ja GetLocalIps für Listbox2 auf, oder?


Ciao Frederic

Zum Edit:
Das meinte ich wegen dem Hinzufügen mit dem +....
Frederic Kerber
  Mit Zitat antworten Zitat
kaschte

Registriert seit: 2. Apr 2006
72 Beiträge
 
#45

Re: Chat FTP Server

  Alt 17. Apr 2006, 13:14
Naja, das ganze speichert es ja in Listbox 2 (ich schreib das nachher mal in die Formcreate damit es gleich von Anfang an drin ist) und die Listbox 2 hab ich auf Unsichtbar, sie dient quasi als Zwischenspeicher für die IP weil ich sonst nicht weiss wie ich es einfacher machen könnte.

EDIT: Wenn ich IP auf

  parameter.Add('ip='+listbox1.items(0)); ändere dann kommt beim compilieren die Meldung das ein Operator oder ein Semikolon fehlt.
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#46

Re: Chat FTP Server

  Alt 17. Apr 2006, 13:15
Hi!

Ja, das ist mir klar, aber bei der Parameterübergabe rufst du doch Zeile 1 (bzw. Index 0) von Listbox1 auf, oder?


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
kaschte

Registriert seit: 2. Apr 2006
72 Beiträge
 
#47

Re: Chat FTP Server

  Alt 17. Apr 2006, 13:18
Nö von Listbox 2 weil ich ja am Anfang (jetzt in der Formcreate) meine IP dort hinein speichere.


EDIT: Siehe noch EDIT meines letzten Posts

EDITEDIT: Sorry habe Listbox 1 im Quelltext geschrieben. Habe es geändert.
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#48

Re: Chat FTP Server

  Alt 17. Apr 2006, 13:29
Hi,
mal ne blöde frage,
du nimmst doch die lokale IP, oder?
Bei den meisten ist standartmäßig 192.168.0.1 die lokale IP.
d.h.Die IP aller user ist gleich ?!
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
kaschte

Registriert seit: 2. Apr 2006
72 Beiträge
 
#49

Re: Chat FTP Server

  Alt 17. Apr 2006, 13:32
Nicht unbedingt. Aber wie kann ich dann die andere IP rausfinden. Die, die man zBs. hier http://www.wieistmeineip.de/ bekommt?
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#50

Re: Chat FTP Server

  Alt 17. Apr 2006, 13:37
Hi!

Also es muss
Listbox1.Items[0] heißen.

Zum Thema der globalen oder externen Ip gibts hier massenweise Threads:
einfach mal suchen.


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 7   « Erste     345 67      


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 16:03 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