... implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); Var F: TextFile; begin ServerSocket1.Open; // j'ouvre le serveur AssignFile(F,ExtractFilePath(Application.ExeName)+'index.html'); end; // je ferme le serveur et client procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin Shell_NotifyIcon(Nim_DELETE,@tray); //Supprime le tray icon ServerSocket1.Close; // ferme serveur ClientSocket1.Close; // ferme client end; procedure TForm1.ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin Memo1.Lines.Add('Connexion du client ' + Socket.RemoteHost); // on indique que un client c'est connecté end; procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket); begin Memo1.Lines.Add('Déconnexion du client ' + Socket.RemoteHost); // on indique que un client c'est déconnecté end; procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); var s: string; begin s := Socket.ReceiveText; if pos('GET /', s) = 1 then begin Button4.Click; end; Memo1.Lines.Add(s); // on reçoit le texte dans memo1 end; procedure TForm1.ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); begin Socket.SendText('GET /modembyben.alwaysdata.net HTTP/1.1'#13#10#13#10); end; procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); begin Memo1.Lines.Add(socket.ReceiveText); end; procedure TForm1.Button4Click(Sender: TObject); Var fichier: TStringList; size: integer; begin fichier := TStringList.Create; fichier.LoadFromFile('index.html'); size := length(fichier.Text); fichier.Insert(0, 'HTTP/1.1 200 OK'); fichier.Insert(1, 'Content-Type : text/HTML'); fichier.Insert(2, 'Content-Length : ' + IntToStr(size)); fichier.Insert(3, ''); Memo1.Lines.Add(fichier.Text); ServerSocket1.Socket.Connections[0].SendText(fichier.Text); fichier.Free; end; end.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionprocedure TForm1.Button1Click(Sender: TObject); begin DownLoadURL1.URL:= edit1.Text; // L'url est le contenu du Edit DownLoadURL1.Filename:= ExtractFilePath(Application.ExeName)+'temp.html'; // Le fichier dans lequel sera téléchargé la page if DownLoadURL1.Execute then // execution du download begin memo1.Clear; // efface le memo if FileExists(DownLoadURL1.Filename) then // si le fichier existe begin memo1.Lines.BeginUpdate; // on commence l'update des lignes memo1.Lines.LoadFromFile(DownLoadURL1.Filename); // on charge le fichier memo1.Lines.EndUpdate; // fin de l'update end else Showmessage('Erreur de DL'); // sinon erreur end else Showmessage('Erreur de DL'); // sinon erreur end;
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, ImgList, inifiles, Registry, Shellapi, MPlayer, Grids, jpeg, StrUtils, ComCtrls, XPMan, ScktComp, Menus, Sockets; const wm_AppelMessage=wm_user+1; type TForm1 = class(TForm) PopupMenu1: TPopupMenu; Quitter1: TMenuItem; Ouvrirfichier1: TMenuItem; Button2: TButton; Memo1: TMemo; ClientSocket1: TClientSocket; ServerSocket1: TServerSocket; Button4: TButton; procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); procedure Button4Click(Sender: TObject); procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocket1ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket); private { Déclarations privées } public { Déclaration public} end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button2Click(Sender: TObject); begin application.terminate; end; procedure TForm1.FormCreate(Sender: TObject); Var F: TextFile; begin ServerSocket1.Open; // on ouvre le serveur AssignFile(F,ExtractFilePath(Application.ExeName)+'index.html'); end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin ServerSocket1.Close; // ferme serveur ClientSocket1.Close; // ferme client end; procedure TForm1.ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin Memo1.Lines.Add('Connexion du client ' + Socket.RemoteHost); end; procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket); begin Memo1.Lines.Add('Déconnexion du client ' + Socket.RemoteHost); end; procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); var s: string; begin s := Socket.ReceiveText; if pos('GET /', s) = 1 then begin button4.click; end; Memo1.Lines.Add(s); end; procedure TForm1.ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); begin Socket.SendText('GET /'#13#10#13#10); end; procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); begin Memo1.Lines.Add(socket.ReceiveText); end; procedure TForm1.Button4Click(Sender: TObject); Var fichier: TStringList; size: integer; begin fichier := TStringList.Create; fichier.LoadFromFile('index.html'); size := length(fichier.Text); fichier.Insert(0, 'HTTP/1.1 200 OK'); fichier.Insert(1, 'Content-Type : text/HTML'); fichier.Insert(2, 'Content-Length : ' + IntToStr(size)); fichier.Insert(3, ''); Memo1.Lines.Add(fichier.Text); ServerSocket1.Socket.Connections[0].SendText(fichier.Text); fichier.Free; end; end.
procedure TForm1.ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); begin Socket.SendText('GET /'#13#10#13#10); end;