Avatar billede ALS Praktikant
26. marts 2012 - 14:56 Der er 15 kommentarer og
2 løsninger

Udveksling af data over et trådløst netværk

Jeg har en lille opgave, hvor jeg via et trådløst netværk skal have et antal små PCer til løbende at kommunikere med en større central PC.

Jeg har ikke den store erfaring med programmering af netværks applikationer i Delphi, men min første tanke var at anvende Indy og tilrette dette eksempel på en Chat-applikation http://delphi.about.com/library/weekly/aa101105a.htm
Desværre kan eksemplet ikke compileres med Indy 10, det har også en del år på bagen.

Har I andet eksempel, eller måske et bedre forslag til løsning af min opgave.
Avatar billede spil2vind Nybegynder
26. marts 2012 - 15:07 #1
Det være rart at vide hvilken form for kommunikation det er der ønskes, handler det om udveksling af filer, opdatering af database eller bare læse indhold fra en fil eller er det personer ved computerne der skal kunne skrive sammen, prøv at beskrive lidt mere, det kan have stor betydning for dit valg af software løsning
Avatar billede ALS Praktikant
26. marts 2012 - 15:16 #2
Jeg skal blot have sendt nogle simple data frem og tilbage. Det er et ARRAY med max. 100 bytes.

Det er til noget industri-styring, så der sidder ikke folk ved maskinerne, faktisk er det små industri-PCer uden skærm.
26. marts 2012 - 15:21 #3
HEJ,

Så vidt jeg erindrer fulgte der med Delphi's installations-CD'en et program som hed CHAT. Det brugte 2 TCP-socket's og var beregnet på NET-kommunikation (TCP/IP) mellem 2 PC-ere.

Det havde mulighed for at ændre IP-adressen og dermed kan du ændre din sender / og modtager.

Så vidt jeg ved kan det også bruges på trådløse PC'ere (aldrig testet det ordentligt), men jeg har brugt programmet på 3 PC'ere (1 server + 2 slaver) på kabel og det kørte fortrinligt (med minimal kode-modifikation).

(Ikke filoverførsel, kun keyboard chat).

KRistian
Avatar billede ALS Praktikant
26. marts 2012 - 15:44 #4
snestrup2000 << Ja, det gjorde der tidligere, men jeg kan ikke finde det til Delphi 2010.
De gamle eksempler jeg har kunnet finde virker ikke med Indy 10 og der er ikke lavet et nyt eksempel.
Avatar billede martinlind Nybegynder
26. marts 2012 - 17:04 #5
Du kan hente INDY 10 demo'er på nettet og der er også en chat demo, plus en del andre client/server demo'er :-)
Avatar billede ALS Praktikant
26. marts 2012 - 17:51 #6
Ja, det er jeg klar over, jeg har været omkring http://www.indyproject.org men det er et MEGET begrænset udvalg af demoer og eksempler, der er lavet til INDY 10.
Langt største delen kan kun compileres med de ældre versioner af Indy, herunder Chat-eksemplet.
Avatar billede martinlind Nybegynder
26. marts 2012 - 18:14 #7
det er rigtigt, kan jeg da godt huske nu du siger det, jeg har med held brugt dem her : http://www.overbyte.be/frame_index.html?redirTo=/products/ics.html

i stedet for indy, der er demo'er og det virker fint :-)
26. marts 2012 - 20:05 #8
Jeg følger lidt med på en sidelinie. Hvis du er (stadig) er interesseret kan jeg søge efter den på min D7. Men da må jeg ha en e-mail adresse. Og jeg vil sende den en gang i løbet af tirsdag / onsdagen på grund af husarbejde (Og have-ditto - foråret kom for tidligt i år (suk)).

KR
Avatar billede ALS Praktikant
26. marts 2012 - 20:19 #9
snestrup2000 jeg er meget interesseret, men bemærk lige at jeg et par kange har gjort opmærksom på at jeg benytter Delphi 2010, hvor det er Indy 10, der medfølger.

Jeg har også fundet Indy chat-eksemplet, både på nettet og min gamle Delphi 6 CD, men det kan altså ikke compileteres med Indy 10.
26. marts 2012 - 22:53 #10
HEJ,

Jeg ved godt at D7 INDY ikke er kompatibel med D2010 INDY og at hvis du prøver at kompilere D7 INDY i D2010 vil du få en fejliste som (sikkert) kan nå 4 gange rundt Ækvator ( - eller er det "kun" 3 gange ...) . 

Årsagen til at jeg foreslog en kopi til dig var at så havde du muligheden for at eksperimentere lidt med koden og tilpasse den til 2010. Da jeg i sin til tilpassede den til D7 lærte jeg en hel del om TCP/ip protokolsuiten -  ....

Men som du skriver har du en kode der er senere end D7 chat er det næsten spildte kræfter at sende min kode, fordi den kode du kan hente på nettet er mere up-to date end den jeg kan tilbyde. Så du bestemmer..

KR
Avatar billede martinlind Nybegynder
26. marts 2012 - 23:48 #11
brug overbyte... det virker og på hjemmesiden under user-made finder du en eks. "minichat"
Avatar billede kroning Nybegynder
27. marts 2012 - 00:53 #12
Jeg bruger Indy version 10.5.8.0 og har lavet et meget simpelt "chat" program, noget jeg lavede for nogle år siden for at finde ud af hvordan det virkede.
Jeg har kun skrevet 10 linier kode og med det kan man starte en server og så mange klienter man vil som kobler sig på serveren og sende beskeder til serveren og modtage svar tilbage fra serveren.
Kan sende det eller poste koden her?
Avatar billede ALS Praktikant
27. marts 2012 - 09:34 #13
kroning >> Det programeksempel må du MEGET gerne sende til mig på mail als(a)microtec(punktum)dk

martinlind >> Tak for dit foreslag. Jeg har prøvet at installere Overbyte og det kunne være en mulighed. Jeg vil dog helst bruge Indy, da det i hvert fald tidligere næsten var "standarden", jeg har aldrig tidligere hørt om Overbyte og er ikke helt tryk ved at der ikke er sket opdateringer siden 2010
Avatar billede kroning Nybegynder
27. marts 2012 - 10:20 #14
Din mail tillader ikke exe filer så jeg har smidt den her:
http://www.kroning.dk/indychattest.zip

Jeg poster det også her:

Jeg bruger Delphi 7 så du kan nok ikke bruge det direkte i D10, men som nævnt er der kun 10 linjer kode.
Kør exe filen 2 eller flere gange på samme computer (både server og klient er sat til localhost)
På en af dem trykker du på "Start server" knappen, på de andre trykker du på "Start klient", nu kan der trykkes på knappen "Send" på alle klienter og teksten sendes til serveren som så svarer tilbage til klienten.

----------

unit indychattestUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdCustomTCPServer, IdTCPServer, IdBaseComponent,
  IdComponent, IdTCPConnection, IdTCPClient, IdContext, IdThread;

type
  TForm1 = class(TForm)
    IdTCPClient1: TIdTCPClient;
    IdTCPServer1: TIdTCPServer;
    btbStartServer: TButton;
    btnStartKlient: TButton;
    Memo1: TMemo;
    btnSendTekst: TButton;
    EditTekst: TEdit;
    procedure btbStartServerClick(Sender: TObject);
    procedure IdTCPServer1Execute(AContext: TIdContext);
    procedure btnStartKlientClick(Sender: TObject);
    procedure IdTCPServer1BeforeListenerRun(AThread: TIdThread);
    procedure btnSendTekstClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btbStartServerClick(Sender: TObject);
begin
    IdTCPServer1.Active:=true;   
end;

procedure TForm1.IdTCPServer1Execute(AContext: TIdContext);
var
  strRequest: String;
begin
  strRequest := AContext.Connection.IOHandler.ReadLn;
    Memo1.Lines.Add('Modtaget fra klient: '+strRequest);
    AContext.Connection.IOHandler.WriteLn('jowjow');
end;

procedure TForm1.btnStartKlientClick(Sender: TObject);
begin
    IdTCPClient1.Connect;
end;

procedure TForm1.IdTCPServer1BeforeListenerRun(AThread: TIdThread);
begin
    memo1.Lines.Add('Server startet');
end;

procedure TForm1.btnSendTekstClick(Sender: TObject);
var
    Result : string;
begin
    IdTCPClient1.IOHandler.writeln(Edittekst.Text);
  Result:=IdTCPClient1.IOHandler.ReadLn;
    Memo1.Lines.Add('Modtaget fra server: '+Result);
end;

end.
Avatar billede kroning Nybegynder
27. marts 2012 - 10:50 #15
Glemte at nævne opsætningen af TIdTCPClient og TIdTCPServer i object inspector:
TIdTCPClient: her har jeg sat host til localhost og port til 12345
TIdTCPServer: her har jeg sat defaultport til l2345
Avatar billede ALS Praktikant
27. marts 2012 - 11:17 #16
kroning >> Dejlig simpelt eksempel, som er til at overskue og kan det jeg efterlyste.
Jeg har lavet en hurtig test og det kan umidelbart compileres i Delphi 2010 og virker lokalt.

Vil du ikke lige give et svar, så jeg kan fordele points
Avatar billede kroning Nybegynder
27. marts 2012 - 11:25 #17
ok, svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester