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

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

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2012, 18:56   #1
unreal2x
Пользователь
 
Аватар для unreal2x
 
Регистрация: 22.01.2012
Сообщений: 39
Печаль TClientSocket. Приложение без формы / Delphi

Очень сильно извиняюсь, что дублирую тему, но ответа в "Помощь студента" как заметил получить очень тяжко.

Есть вопрос-проблемка.

в без-форменном приложении TClientSocket не хочет компилироваться. Ругается на порт адрес оупен.
Консоль конешно можно, но интересен и этот вариант без формы.

Использую код...

Код:

Код:
program client;

uses
  Windows,
  SysUtils,
  ScktComp,

var
CS: TClientSocket;

begin
while 1=1  do
  Begin
sleep(10000);
CS:=TClientSocket.Create(nil);
CS.Port:=666;
CS.Address:=IP;
CS.Open;
end;

end.
Помогите плиз - кто знает.
no sleep.
unreal2x вне форума Ответить с цитированием
Старый 05.05.2012, 19:21   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Как как ругается??
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.05.2012, 19:58   #3
sxcine
Пользователь
 
Аватар для sxcine
 
Регистрация: 26.05.2010
Сообщений: 78
По умолчанию

Код:
while 1=1  do
  Begin
sleep(10000);
CS:=TClientSocket.Create(nil);
в БЕСКОНЕЧНОМ цикле идёт создание сокета. это первое.

Код:
CS.Address:=IP;
что это за переменная и где ее значение?
в приведенном коде лично не увидел.
sxcine вне форума Ответить с цитированием
Старый 05.05.2012, 23:45   #4
unreal2x
Пользователь
 
Аватар для unreal2x
 
Регистрация: 22.01.2012
Сообщений: 39
По умолчанию

Сори за мою тупость) Но как сделать так, чтоб приложение не отключалось сразу?
а тот бесконечный цикл))) я к нему еще showmessage('1'); Добавил) чтоб приложение не закрывалось сразу)

Код:
program client;

uses
  Windows,
  SysUtils,
  ScktComp;

var
CS: TClientSocket;

begin
CS:=TClientSocket.Create(nil);
CS.Port:=666;
CS.Address:='127.0.0.1';
CS.Open;
end;

end.
и код
Код:
procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
var
Msg:string;
begin
Msg:=Socket.ReceiveText;
showmessage(Msg);
end;
к сожалению ничего не принимает... Справку по соксам - с удовольствием бы почитал.
no sleep.

Последний раз редактировалось unreal2x; 05.05.2012 в 23:50.
unreal2x вне форума Ответить с цитированием
Старый 08.05.2012, 13:04   #5
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

А почемуб просто не создать приложение с формой и просто её, форму, отключить?
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 11.05.2012, 11:46   #6
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Цитата:
к сожалению ничего не принимает... Справку по соксам - с удовольствием бы почитал.
И не будет ее нужно объявить)
Код:
begin
CS:=TClientSocket.Create(nil);
CS.OnRead := ClientSocket1Read;// но будет ошибка потому как нужно эту процедуру назначать в созданном классе
CS.Port:=666;
CS.Address:='127.0.0.1';
CS.Open;
end;
Про без форменные приложения почитай книгу Михаила Фленова "Delphi глазами хакера", там кроме этого много чего интересного.

В общем в ресурсе проекта сделай так
Код:
program client;

uses
  Windows,
  Programm in 'Programm.pas';

var
AMessage: msg;

// Это нужно чтобы приложение не отключалось работало с событиями
begin
while (GetMessage(AMessage, 0, 0, 0)) do
    begin
      TranslateMessage(AMessage);
      DispatchMessage(AMessage);
    end;
    Halt(AMessage.wParam);
end.
И отдельно создай модуль, в котором будет происходить вся работа твоей программы
Код:
unit Programm;

interface
uses
Windows, SysUtils, ScktComp, Dialogs;

type
  TProgramm = class
  private
  FClientSocket: TClientSocket;
  public
  constructor Create; virtual;
  destructor Destroy; override;
  procedure ClientSocketRead(Sender: TObject; Socket: TCustomWinSocket);
  end;

var
Prog: TProgramm;

implementation

constructor TProgramm.Create;
begin
  inherited;
FClientSocket:=TClientSocket.Create(nil);
FClientSocket.OnRead := ClientSocketRead;
FClientSocket.Port:=666;
FClientSocket.Address:='127.0.0.1';
FClientSocket.Open;
end;

destructor TProgramm.Destroy;
begin
 FClientSocket.free;
  inherited;
end;

procedure TProgramm.ClientSocketRead(Sender: TObject; Socket: TCustomWinSocket);
var
Msg:string;
begin
Msg:=Socket.ReceiveText;
showmessage(Msg);
end;

// При загрузке программы класс будет создаваться  
initialization
  Prog := TProgramm.Create;

//При закрытии программы уничтожаться
finalization
   Prog.Destroy;
end.

Последний раз редактировалось Aliens_wolfs; 11.05.2012 в 14:13.
Aliens_wolfs вне форума Ответить с цитированием
Старый 11.05.2012, 11:58   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
CS.OnRead := ClientSocket1Read;
не скомпилится.
ибо of object там стоит.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.05.2012, 12:17   #8
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Спасибо! Я уже исправил. Неуспел дописать просто)

Последний раз редактировалось Aliens_wolfs; 11.05.2012 в 12:23.
Aliens_wolfs вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VCL приложение без формы harimambura Общие вопросы C/C++ 6 26.08.2012 20:50
TClientSocket. Приложение без формы / Delphi unreal2x Помощь студентам 0 05.05.2012 16:31
Как сделать так чтобы приложение базы данных работала на компьютерах без установленной программы delphi? Даниил_глазко БД в Delphi 6 09.11.2010 16:26
приложение без формы, событие при завершении ERASERROR Общие вопросы Delphi 10 22.02.2008 14:10
Приложение без формы Wiggle Общие вопросы Delphi 12 18.04.2007 20:20