Есть код сервера.
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdBaseComponent, IdComponent, IdTCPServer, StdCtrls, Sockets,
ComCtrls, ExtCtrls;
type
TForm1 = class(TForm)
TcpServer1: TTcpServer;
Timer1: TTimer;
Edit1: TEdit;
procedure TcpServer1Accept(Sender: TObject;
ClientSocket: TCustomIpClient);
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
bufer:integer;
Form1: TForm1;
levo,pravo,vniz,verx:string;
x,y:integer;
xp2,yp2:integer;
buf:integer;
host:string;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Sleep(500);
TcpServer1.Active:=true;
if tcpserver1.Active=true then Form1.Caption:=('Server snake');
x:=10;
y:=10;
end;
procedure TForm1.TcpServer1Accept(Sender: TObject;
ClientSocket: TCustomIpClient);
begin
Edit1.Text:=(Clientsocket.Receiveln);
End;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
If Edit1.Text=('right') then
begin
Edit1.Text:=('');
TcpServer1.Sendln('backright');
Beep;
end;
begin
If Edit1.Text=('left') then
begin
Edit1.Text:=('');
Beep;
end;
end;
begin
If Edit1.Text=('up') then
begin
Edit1.Text:=('');
TcpServer1.Sendln('backup');
Beep;
end;
end;
begin
If Edit1.Text=('down') then
begin
Edit1.Text:=('');
TcpServer1.Sendln('backdown');
Beep;
end;
end;
end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
ShowMessage(TcpServer1.Receiveln);
end;
End.
И Код клиента к нему
Код:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
using namespace std;
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
if (GetKeyState(VK_LEFT)&8000)
{ClientSocket1->Open(), ClientSocket1->Socket->SendText("left"), ClientSocket1->Close();}
if (GetKeyState(VK_UP)&8000)
{ClientSocket1->Open(), ClientSocket1->Socket->SendText("up"),ClientSocket1->Close();}
if (GetKeyState(VK_RIGHT)&8000)
{ClientSocket1->Open(), ClientSocket1->Socket->SendText("right"),ClientSocket1->Close();}
if (GetKeyState(VK_DOWN)&8000)
{ClientSocket1->Open(), ClientSocket1->Socket->SendText("down"),ClientSocket1->Close();}
if (ClientSocket1->Socket->ReceiveText()==("backright")) {ShowMessage("Yes");}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Connect(TObject *Sender,
TCustomWinSocket *Socket)
{
String bufer;
bufer=ClientSocket1->Socket->ReceiveText();
Edit1->Text=bufer;
if (bufer==("backleft")) {ShowMessage("Zaeblo");}
}
//---------------------------------------------------------------------------
Проходжит обработка событий по нажатию а вот обратно к клиенту ничего не доходит хотя вот тут вроде отправляю
Код:
begin
If Edit1.Text=('up') then
begin
Edit1.Text:=('');
TcpServer1.Sendln('backup');
Beep;
end;
end;
А тут принимаю хотябы для проверки
Код:
String bufer;
bufer=ClientSocket1->Socket->ReceiveText();
Edit1->Text=bufer;