Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2010, 15:15   #1
maldun
Новичок
Джуниор
 
Регистрация: 06.04.2010
Сообщений: 1
По умолчанию Builder и Delphi клиент сервер

Есть код сервера.
Код:
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;
maldun вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
БД Access & ADO Delphi (клиент-сервер) Andre1723 БД в Delphi 14 05.05.2011 15:13
Сервер и клиент Indy (delphi) Nice42ru Помощь студентам 0 09.12.2009 19:33
Создать клиент и сервер. Delphi SPQR Работа с сетью в Delphi 4 12.11.2007 12:48