Проблема с передачей текста по TCP

Модераторы: Duncon, Naeel Maqsudov, Хыиуду, Игорь Акопян

Ответить
Ortos
Сообщения: 3
Зарегистрирован: 21 сен 2007, 11:18

21 сен 2007, 11:50

Товарищи, помогите пожалуйста разобраться:
Написал 2 маленьких проги, использовал компоненты Indy9:

Сервер, на форме idTCPServer, слушает 25 порт, localhost

procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
begin
with AThread.Connection do
begin
MessgesLog.Lines.Add(AThread.Connection.CurrentReadBuffer);
Disconnect;
end;
end;


клиент, отсылает на localhost, порт 25, некие данные:

procedure TForm1.BtnSendMailClick(Sender: TObject);
begin
if not IdTCPClient1.Connected then
IdTCPClient1.Connect();
IdTCPClient1.Write(MessageText.Text);
IdTCPClient1.Disconnect;
end;


Вроде все работает, беру сервак в отладку - нормально, событие срабатывает, однако текст почему-то не передается.. никак не могу понять в чем дело, если кто может - помогите пожалуйста.

Заранее спасибо

З.Ы. Никаих файрволов и прочих прог на компе у меня не установлено
Dr_Grizzly
Сообщения: 406
Зарегистрирован: 13 сен 2004, 12:05
Откуда: Курган
Контактная информация:

24 сен 2007, 11:49

По-моему AThread.Connection.ReadLnWait или ReadString... на принятие сообщения... Точно не помню
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! ;) Да! Кстати! Ctrl+V реально вставляет!!! ХDD
Dr_Grizzly
Сообщения: 406
Зарегистрирован: 13 сен 2004, 12:05
Откуда: Курган
Контактная информация:

24 сен 2007, 11:53

IdTCPClient1.WriteLn(компонент)
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! ;) Да! Кстати! Ctrl+V реально вставляет!!! ХDD
Dr_Grizzly
Сообщения: 406
Зарегистрирован: 13 сен 2004, 12:05
Откуда: Курган
Контактная информация:

24 сен 2007, 11:56

Короче, у дельфы 6 есть пример работы на idТСР компонентах, лежит в папке дельфы\demos\intenet\chat там и клинет и сервер, глянь да сделай на примере
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! ;) Да! Кстати! Ctrl+V реально вставляет!!! ХDD
Ortos
Сообщения: 3
Зарегистрирован: 21 сен 2007, 11:18

24 сен 2007, 16:23

Dr_Grizzly, спасибо что ответил..

Проблема именно в 25 порте

Система вся крутится на локалхосте, файрволов нет, netstat говорит, что 25 порт не занят,
но через 25 порт почему-то данные не передаются...
К примеру через 456 порт - все нормально, работает
Через 25 - беру сервак в отладку - нормально, событие OnExecute срабатывает, однако текст не передается..
Вот такая ситуация
Dr_Grizzly
Сообщения: 406
Зарегистрирован: 13 сен 2004, 12:05
Откуда: Курган
Контактная информация:

24 сен 2007, 16:42

Хм, интересненька :) Я думаю, что что-то все же ждет по 25 порту пакета, хотя черт знает, тут вопрос для админа почтовых служб.

Значит прога работает, тогда почему тебе так принципиален именно 25 порт? Есть литера по тому как должны выглядеть пакеты передаваемые по 25 порту, но где видел ща не помню, надо рыться в и-нете...
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! ;) Да! Кстати! Ctrl+V реально вставляет!!! ХDD
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

24 сен 2007, 16:45

Ortos, не советую использовать порт TCP 25, т.к. он специально предназначен для отправки/получения электронной почты (MTA). Некоторые средства защиты Windows трафик по этому порту могут не пропустить, если не соблюдены правила протокола.
It's a long way to the top if you wanna rock'n'roll
Ortos
Сообщения: 3
Зарегистрирован: 21 сен 2007, 11:18

24 сен 2007, 17:55

Dr_Grizzly, somewhere, спасибо за помощь

Порт 25 принципиален потому, что мне нужно слабать SMTP-relay

Так я просто хотел проверить работает оно вообще или нет. Типа - маленькая прога, которая тупо шлет релею текст через 25 порт, а он уже шлет его на какое-то мыло
Dr_Grizzly
Сообщения: 406
Зарегистрирован: 13 сен 2004, 12:05
Откуда: Курган
Контактная информация:

25 сен 2007, 09:30

Ну тогда ясен пень, что нужно это делать согласно протоколу, заголовок, тема, и текст письма пишется после матерных слов как описано здесь http://www.codenet.ru/webmast/smtp.php
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! ;) Да! Кстати! Ctrl+V реально вставляет!!! ХDD
Ответить