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