Communication en réseau local
Bonjour!
J'utilise un Raspberry (OS: Raspbian),et je souhaite envoyer des données à une autre machine connectée sur mon réseau local (= PC fonctionnant sous Windows).
Pour cela j'ai créé un nouveau projet<< application . Sur l'interface graphique, un label me donne l'adresse du Raspberry que j'utilise. J'ai ensuite placé un edit qui permet d'entrer l'IP ou l'URL où les données doivent être envoyées. Voici les lignes de code que j'ai repris (c'est presque exactement ce que je veux faire) :
https://stackoverflow.com/questions/...synapse-delphi
Initialement, la fonction HttpPostURL n'étais pas reconnu. Après des recherches j'ai trouvé la lbrairie HttpSend (qui contient la fonction qui m'intéresse) : https://github.com/MerlijnWajer/Simb...tpsend.pas#L82
Après avoir rajouté cette librairie dans les uses de mon projet, quand j'essaie de compiler le compilateur ne reconnait pas l'unité blcksock dans HttpSend... je ne sais pas comment faire pour que blcksock soit reconnue.
Même si l'erreur ne vient pas de là (enfin je pense ) voici le code que j'utilise :
Code:
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 65 66 67 68 69 70 71 72 73 74 75 76
| unit main_TESTCOM;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
ipget, httpsend, Synacode;
type
{ TForm_TESTCOM }
TForm_TESTCOM = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Send: TButton;
STOP: TButton;
Label_IP: TLabel;
procedure FormCreate(Sender: TObject);
procedure SendClick(Sender: TObject);
procedure STOPClick(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form_TESTCOM: TForm_TESTCOM;
adr_IP:string;
implementation
{$R *.lfm}
{ TForm_TESTCOM }
procedure TForm_TESTCOM.FormCreate(Sender: TObject);
begin
adr_IP:=GetIpList;
Label_IP.Caption:='Adresse IP:'+adr_IP ;
end;
procedure TForm_TESTCOM.SendClick(Sender: TObject);
var
IP_recepteur, ToSend:string;
Response:TMemoryStream;
begin
Response:=TMemoryStream.Create;
try
IP_recepteur:=Edit2.text;
ToSend:=Edit1.Text; //chaine de caractère à envoyer
if HttpPostURL(IP_recepteur, ToSend, Response) then
begin
Response.SaveToFile(/home/pi/Documents / 'response.text') ;
end;
finally
Response.Free;
end;
end;
procedure TForm_TESTCOM.STOPClick(Sender: TObject);
begin
Close;
end;
end. |
Merci pour votre aide
Cordialement