Autor Beitrag
pigfacejoe
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 332
Erhaltene Danke: 1

Win 10, Ubuntu
Delphi,Javascript, PHP, Java, Python
BeitragVerfasst: Do 28.09.06 17:19 
Guten Tag zusammen,
Ich will ein Programm schreiben, mit dem ich den Inhalt eines memos an einen anderen PC senden kann.Also sozusagen einen Newsletter: Ich schreibe etwas in das memo und versende es an jeden, der mein programm auf seinem rechner hat.
Ist das irgendwie möglich?-Hab was von indy gehört und mir das einfach mal runter geladen, aber wenn man 0 Ahnung von indy hat, dann bringt das ja nix..^^
Also, ich freue mich über jede Antwort.
Vielen Dank.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 28.09.06 17:34 
Moin!

user profile iconpigfacejoe hat folgendes geschrieben:
Ich will ein Programm schreiben, mit dem ich den Inhalt eines memos an einen anderen PC senden kann.Also sozusagen einen Newsletter: Ich schreibe etwas in das memo und versende es an jeden, der mein programm auf seinem rechner hat.
Ist das irgendwie möglich?

Ja, das ist möglich, auch mit den Indy-Komponenten.

Wenn du dich allerdings noch gar nicht mit Netzwerkprogrammierung beschäftigt hast, dann könnte es eventuell einfacher sein, sich (erst)mal mit den Socket-Komponenten zu beschäftigen. Damit kannst du hier einsteigen. Später kannst du ja jederzeit wieder auf den Indies aufsetzen. ;)

Um die Antwort auf die sicher kommende Frage gleich vorwegzunehmen: ja, ich weiß, dass du keinen Chat programmieren willst, aber wenn du das kannst, dann kannst du auch dein Projekt umsetzen. ;) Also, erstmal mit den Grundlagen anfangen, dann weitermachen. :D

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
pigfacejoe Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 332
Erhaltene Danke: 1

Win 10, Ubuntu
Delphi,Javascript, PHP, Java, Python
BeitragVerfasst: Do 28.09.06 17:57 
So hab mir das jetzt komplett durchgelesen,ich weiss jetzt wie ich einen TClientSocket dynamisch erstellen kann, aber wie geht das mit dem TServerSocket(sry, ich hab echt 0 Plan^^)?
Gruss
Pigface
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 28.09.06 18:04 
Moin!

user profile iconpigfacejoe hat folgendes geschrieben:
So hab mir das jetzt komplett durchgelesen,ich weiss jetzt wie ich einen TClientSocket dynamisch erstellen kann, aber wie geht das mit dem TServerSocket(sry, ich hab echt 0 Plan^^)?

In dem Tut-Beitrag am Ende sind Anhänge, da gibt es auch eine Version mit dynamisch erstellten Komponeten; falls du das meinst, weil du möglicherweise nur eine D7PE hast?

Oder habe ich dich falsch verstanden? ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
pigfacejoe Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 332
Erhaltene Danke: 1

Win 10, Ubuntu
Delphi,Javascript, PHP, Java, Python
BeitragVerfasst: Do 28.09.06 18:23 
Genau Richtig ich hab eine Dlphi 7 PE,
und unten bei 3. steht ja auch wie ich dann TClientSocket erstellen kann, ich wollte jetzt wissen wie ich denn TServerSocket erstellen kann.
Vielen Dank für die schnelle Antwort!
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 28.09.06 23:25 
Moin!

user profile iconpigfacejoe hat folgendes geschrieben:
und unten bei 3. steht ja auch wie ich dann TClientSocket erstellen kann, ich wollte jetzt wissen wie ich denn TServerSocket erstellen kann.

Äh, aber das ist doch im gleichen Archiv drin (ChatBasics_dynKompo.zip), der Minimal-Chat mit Server und Client in der dynamischen Kompo-Version. ;)

Oder versteh ich dich immer noch falsch? :gruebel: :nixweiss:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
pigfacejoe Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 332
Erhaltene Danke: 1

Win 10, Ubuntu
Delphi,Javascript, PHP, Java, Python
BeitragVerfasst: Fr 29.09.06 16:16 
Habe den Quelltext, den su geschrieben hast um TClientSocket dynamisch zu erstellen angepasst und nun kommt folgender fehler:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,ScktComp;

type
  TForm1 = class(TForm)
  procedure DynConnectEvent(Sender: TObject; Socket: TCustomWinSocket);
    procedure FormCreate(Sender: TObject);
      private
    { Private-Deklarationen }
  public
  ClientSocket1: TClientSocket;
    { Public-Deklarationen }
  end;


[Fehler] Unit1.pas(11): Ungenügende Forward- oder External-Deklaration: 'TForm1.DynConnectEvent'

Moderiert von user profile iconraziel: Delphi-Tags hinzugefügt
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 29.09.06 16:32 
Moin!

a) Bitte die Delphi-Tags verwenden, damit der Quelltext vernünftig dargestellt wird.
b) Zum Fehler: Du hast ja auch keine entsprechende Prozedur geschrieben. ;) Also sagt dir der Compiler völlig zu Recht: da fehlt der Code!

Schau dir doch mal den Code aus dem Archiv genau an, da läuft das doch schon. Brauchst doch nur "nachzumachen". ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
pigfacejoe Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 332
Erhaltene Danke: 1

Win 10, Ubuntu
Delphi,Javascript, PHP, Java, Python
BeitragVerfasst: Fr 29.09.06 20:32 
Ich bekomms irgendwie nicht hin..
Bn halt bei sowas ziemlich blöd.
Kann man sich die Komponenten nicht irgendwo downloaden ?
Oder bekomm ich die nicht sonstwo her?
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Sa 30.09.06 10:39 
Moin!

user profile iconpigfacejoe hat folgendes geschrieben:
Ich bekomms irgendwie nicht hin..
Bn halt bei sowas ziemlich blöd.

Hm, ist eigentlich gar nicht soo schwer, wundert mich. :? Nicht so schnell aufgeben... ;)

user profile iconpigfacejoe hat folgendes geschrieben:
Kann man sich die Komponenten nicht irgendwo downloaden ?
Oder bekomm ich die nicht sonstwo her?

Ich weiß nicht, ob es irgendwo eine Downloadquelle für die dclsockets70.bpl gibt, aber wenn, dann ist es illegal. :mahn:

Du kannst dir auch z.B. ein Buch kaufen, bei dem D7 dabei ist. Das sind meistens Pro-Versionen, die Zeitlich begrenzt sind. Da ist dann auch dieses Package dabei. So könntest du zumindest in der Testphase die Komponenten in der IDE verwenden. ;)

Aber wie schon gesagt, das ist soo schwer nicht. Wo kommst du denn nicht weiter? Immernoch bei dem Fehler oben stecken geblieben?

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
pigfacejoe Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 332
Erhaltene Danke: 1

Win 10, Ubuntu
Delphi,Javascript, PHP, Java, Python
BeitragVerfasst: Sa 30.09.06 11:05 
Hi narses, vielen Dank für deine Geduld,
Aber ich habs jetzt mal mit indy probiert:
Also ich habe einen server und einen Client:
Der server hat folgenden Quelltext:
ausblenden volle Höhe 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:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
unit Main;


interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPServer, StdCtrls;

type
  TForm1 = class(TForm)
    IdTCPServer1: TIdTCPServer;
    Button1: TButton;
    Button2: TButton;
    Memo1: TMemo;
    procedure IdTCPServer1Execute(AThread: TIdPeerThread);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
    FSend: Boolean;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
begin

  if FSend then begin
    AThread.Connection.WriteLn(memo1.text);
    FSend:=false;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  FSend := False;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  FSend := True;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  IdTCPServer1.Active := True;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  IdTCPServer1.Active := False;
end;

end.

In memo1.text trage ich ein,was ich versenden will zu diesem client:
ausblenden volle Höhe 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:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
unit Unit13;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  StdCtrls, IdAntiFreezeBase, IdAntiFreeze;

type
  TForm13 = class(TForm)
    Memo1: TMemo;
    Client: TIdTCPClient;
    IdAntiFreeze1: TIdAntiFreeze;
    procedure FormActivate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form13: TForm13;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm13.FormActivate(Sender: TObject);

begin
memo1.text:=' ';
if not fileexists('C:\hausaufgaben'+form1.label1.Caption) then begin
  with Client do begin
    Connect;
    if Connected then begin
      Memo1.Lines.Add(ReadLn(''3000));
      memo1.lines.SaveToFile('C:\hausaufgaben'+form1.label1.caption);

    end;
  end;
end else memo1.lines.loadfromfile('C:\hausaufgaben'+form1.label1.caption);
end ;


procedure TForm13.FormClose(Sender: TObject; var Action: TCloseAction);
begin
client.Disconnect;
end;

end.

So, doch wenn meine Freunde, die nur den Client haben, zu meinem server verbinden sollten, kommt die Fehlermeldung mit "Socket Error #12323(zahl ausgedacht) und Connection refused" Wie kann ich dem Client mitteilen , dass er übers internet den server auf meinem pc anwählt?
Danke,
Cu
Pigface
pigfacejoe Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 332
Erhaltene Danke: 1

Win 10, Ubuntu
Delphi,Javascript, PHP, Java, Python
BeitragVerfasst: So 01.10.06 12:12 
PS: Also wenn ich auf meinem Rechner Client und Server öffne, empfängt der server den Text den ich in memo1 im server eingebe nur azf anderen Rechnern nicht.Wie kann ich dem Client auf einem anderen Rechner jetzt klarmachen , dass er zu meinem Server auf meinem PC zugreift??
Cu
Pigface
pigfacejoe Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 332
Erhaltene Danke: 1

Win 10, Ubuntu
Delphi,Javascript, PHP, Java, Python
BeitragVerfasst: So 01.10.06 23:25 
Könnte nicht jm pls da drüber schauen und mir sagen , wie ich dem Client mitteile, dass er auf dem server auf meinem PC zugreift?
Thx
Cu Pigface
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: So 01.10.06 23:33 
In dem du hier die IP deines Rechners und dien ausgewählten Port angibst.

_________________
Markus Kinzler.
pigfacejoe Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 332
Erhaltene Danke: 1

Win 10, Ubuntu
Delphi,Javascript, PHP, Java, Python
BeitragVerfasst: Mo 02.10.06 00:01 
Wie finde ich die IP von meinem rechner raus und wo muss ich diese dann eintragen?
Thx,
Pigface
pigfacejoe Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 332
Erhaltene Danke: 1

Win 10, Ubuntu
Delphi,Javascript, PHP, Java, Python
BeitragVerfasst: Mo 02.10.06 00:49 
So Leute,
hab meine IP beim Client in Client.Host= Ip Adresse von meinem PC eingetragen
Eine neue fehlermeldung kommt jtzt bei meinem Freund:
"Connection Timed out"
Ich bin am Verzweifeln-Was mache ich falsch??-Es kann doch nicht so schwer sein ein memo-Inhalt zu verschicken..
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 02.10.06 00:54 
Moin!

Wenn Router im Spiel sind, braucht der Router, in dessen Netz der Server läuft, noch ein Portforwarding (heißt manchmal auch Virtual Server).

//EDIT: Teste doch einfach mal mit den Chat-Anwendungen aus meinen Tuts (da sind ja fertige EXEcutables bei), damit muss es auf jeden Fall gehen. Wenn nicht, dann hast du ein Konfig-Problem mit deinem Netz (oder dein Kumpel). ;)

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:40, insgesamt 1-mal bearbeitet
pigfacejoe Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 332
Erhaltene Danke: 1

Win 10, Ubuntu
Delphi,Javascript, PHP, Java, Python
BeitragVerfasst: Mo 02.10.06 10:38 
Also einen Router habe ich nicht ( mein Freund aber),
Ich habe mir Die Demo zu indy 9 heruntergeladen mit Client und server und gestern getestet.Bei dem Client, der nur mein Freund hat, steht die IP von meinem PC unter der Eigenschaft "Host" (Ich denke mal das das meine IP ist^^) So, ich schalte bei mir auf dem pc den Server auf "Active", dann erst connected mein Freund. Nach ca 30 sek. Kommt bei ihm die Fehlermeldung: "Connection Timed out"
Bevor ich die richtige IP im host stehen hatte, kam immer eine andere fehlermeldung , also denke ich dass der client ja irgendwie schon meinen PC gefunden hat.
Trotzdem kommt halt immer die Fehlermeldung.
Also ich habe 2PCs, die aber nicht durch Router verbunden sind (rentiert sich sowieso nicht^^)sie sind verbunden durch Devolo Microlink dLAN duo (über die steckdose).

Danke für deine Antwort!
CU
Pigface
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Mo 02.10.06 10:44 
Welche IP hat dein Freund den angegeben, eine private IP oder die öffentlich Adresse, welche dein Provider dir zugewiesen hat?

_________________
Markus Kinzler.
pigfacejoe Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 332
Erhaltene Danke: 1

Win 10, Ubuntu
Delphi,Javascript, PHP, Java, Python
BeitragVerfasst: Mo 02.10.06 10:48 
Mein Freund hat gar nichts angegeben , ich hab bevor ich ihm das Programm geschickt habe meine IP vom PC ngegeben (1.Gehen Sie über Start -> Ausführen -> Eingabe von "cmd" in die "Eingabeaufforderung".
2.Geben Sie im jetzt erscheinenden Fenster "ipconfig /all" ein und warten Sie etwas.
Dann habe ich die IP Adresse unter "ernet NIC" unter "DHCP aktiviert" genommen , Ist das die falsche?