ReceiveBuf ao invés de ReceiveText
e
SendBuf ao invés de SendText
O exemplo a seguir é semelhante ao anterior, porém permite a comunicação enviando e recebendo um número inteiro.
O programa a seguir pode se comunicar com o servidor do exemplo desenvolvido em linguagem C para Linux.
unit UnCliente; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ScktComp, StdCtrls; type TForm1 = class(TForm) ClientSocket1: TClientSocket; Button1: TButton; Edit1: TEdit; Button2: TButton; Edit2: TEdit; Edit3: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; procedure ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; meunro, nrorec: integer; implementation {$R *.DFM} procedure TForm1.ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); begin showmessage('conectou'); end; procedure TForm1.Button1Click(Sender: TObject); begin ClientSocket1.Host:=edit1.text; ClientSocket1.port:=strtointdef(edit2.text,0); ClientSocket1.Active:=true; Button2.Enabled:=true; end; procedure TForm1.Button2Click(Sender: TObject); begin meunro:=strtointdef(Edit3.text,0); ClientSocket1.Socket.SendBuf(meunro,sizeof(meunro)); if nrorec>0 then begin if (nrorec + meunro) mod 2 <> 0 then begin showmessage('Seu Nro: ' + inttostr(meunro) + ' Nro Recebido: '+ inttostr(nrorec) + ' VOCÊ GANHOU!'); end else begin showmessage('Seu Nro: ' + inttostr(meunro) + ' Nro Recebido: '+ inttostr(nrorec) + ' VOCÊ PERDEU!'); end; nrorec:=0; meunro:=0; end; end; procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); begin Socket.ReceiveBuf(nrorec,sizeof(nrorec)); if meunro > 0 then begin if (nrorec + meunro) mod 2 <> 0 then begin showmessage('Seu Nro: ' + inttostr(meunro) + ' Nro Recebido: '+ inttostr(nrorec) + ' VOCÊ GANHOU!'); end else begin showmessage('Seu Nro: ' + inttostr(meunro) + ' Nro Recebido: '+ inttostr(nrorec) + ' VOCÊ PERDEU!'); end; nrorec:=0; meunro:=0; end; end; procedure TForm1.FormCreate(Sender: TObject); begin button2.Enabled:=false; end; end.
Poste retirado do Blog: http://blogprogramadores.blogspot.com.br/2010/07/sockets-em-delphi.html
0 comentários:
Postar um comentário