Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> idTCPClient/idTCRServer, Как юзать 
:(
    Опции темы
ElusivE
Дата 29.5.2005, 03:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 28.3.2005

Репутация: нет
Всего: нет



Чет нигде не могу найти, как отправлять посты с помощью этого компонента
PM MAIL WWW ICQ   Вверх
<Spawn>
Дата 30.5.2005, 04:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 1
Всего: 64



Вот простейший пример(не помню для каких целей набрасывал, но работает):

Сервер

Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPServer, StdCtrls,
  StrUtils;

type
  TForm1 = class(TForm)
    IdTCPServer: TIdTCPServer;
    Memo1: TMemo;
    btnState: TButton;
    procedure btnStateClick(Sender: TObject);
    procedure IdTCPServerExecute(AThread: TIdPeerThread);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btnStateClick(Sender: TObject);
begin
  idTCPServer.Active := not idTCPServer.Active;
  btnState.Caption := IfThen(idTCPServer.Active, 'Stop', 'Start');
end;

procedure TForm1.IdTCPServerExecute(AThread: TIdPeerThread);
begin
  Memo1.Lines.Add(AThread.Connection.ReadLn);
end;

end.


Клиент

Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  StdCtrls, StrUtils;

type
  TForm1 = class(TForm)
    IdTCPClient: TIdTCPClient;
    btnState: TButton;
    edtSend: TEdit;
    btnSend: TButton;
    procedure btnStateClick(Sender: TObject);
    procedure btnSendClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btnStateClick(Sender: TObject);
begin
  if not idTCPClient.Connected then
    idTCPClient.Connect
  else
    idTCPClient.Disconnect;

  btnState.Caption := IfThen(idTCPClient.Connected, 'Disconnect', 'Connect');
end;

procedure TForm1.btnSendClick(Sender: TObject);
begin
  if idTCPClient.Connected then
    idTCPClient.WriteLn(edtSend.Text);
end;

Добавлено @ 04:57
Разумеется должны быть прописаны такие свойства как host(localhost) и port(допустим 5000) у клиента и DefaultPort(5000) у сервера


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Guest
Дата 31.5.2005, 00:09 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Спасибо... как только появится минутка свободная - испытаю...
  Вверх
Плаха
Дата 31.5.2005, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 10.11.2004
Где: МО п. Киевский

Репутация: нет
Всего: нет



юзай сокеты. легко и просто
--------------------
Принимай то что есть и устраивайся как хочеш
PM MAIL ICQ   Вверх
Гость_Snake
Дата 27.6.2005, 07:27 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











А как избавиться от ошибки 10053 при работе с сокетами ?
  Вверх
Archon7th
Дата 27.6.2005, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 22.4.2005
Где: Витебск Белорусия

Репутация: нет
Всего: нет



Плаха
Через сокеты большие пакеты непролязят ... точнее они пролазят неполностью, встречаються выщерблены и пакеты без концовок
--------------------
CPU not found. Running software emulation.
PM MAIL ICQ   Вверх
Snowy
Дата 27.6.2005, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Цитата
А как избавиться от ошибки 10053 при работе с сокетами ?

Ошибка: соединение невозможно.
Решение для данного случая:
Код

try
  idTCPClient.Connect
except
  ShowMessage('Не могу соедениться с сервером');
end;

PM MAIL   Вверх
RA
Дата 28.6.2005, 05:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 10
Всего: 115



Цитата(Archon7th @ 27.6.2005, 09:08)
Через сокеты большие пакеты непролязят ... точнее они пролазят неполностью, встречаються выщерблены и пакеты без концовок


Цитата
юзай сокеты. легко и просто



Archon7th, Плаха
Так называемые вами сокеты - единсвенный способ передачи сетевой информации. А то, какой компонент как их использует, и через какой протокол как работает это уже другой разговор.

Это сообщение отредактировал(а) RAdmin - 28.6.2005, 05:12
PM   Вверх
Archon7th
Дата 3.8.2005, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 22.4.2005
Где: Витебск Белорусия

Репутация: нет
Всего: нет



Здесь сказано как Client'ом отправлять сообщения, а принять он их что не может ?

.... у меня просто ситуация, что я посылаю сообщение и почти сразу мне должен приходить ответ, по тому порту от которого было послано сообщение <_<

... до этого я использовал TClientSocket и этот момент работал прекрасно, но неработал другой ... а теперь, вроде как, всё на оборот <_<
--------------------
CPU not found. Running software emulation.
PM MAIL ICQ   Вверх
Dubinsky
Дата 4.8.2005, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 252
Регистрация: 1.6.2005

Репутация: нет
Всего: нет



подскажите люди добрые , а если к серверу (Indy) подключилось несколько клиентов , как узнать их кол-во и послать кому то конкретно сообщение .

в TServerSocket всё было ясно в Indy не пойму ...
PM MAIL WWW   Вверх
Romero
Дата 6.8.2005, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 17.6.2005

Репутация: нет
Всего: 1



Посмотрите демку в комплекте с 6 дельфей - там все просто и доступно написано (чат для локалки).
PM   Вверх
Dubinsky
Дата 7.8.2005, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 252
Регистрация: 1.6.2005

Репутация: нет
Всего: нет



чат же вроде на TServerSocket написан или в 6 Делфях есть и на Инди ?
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.1084 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.