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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чтение и запись в порты UDP и TCP, Как читать и писать в порты UDP и TCP? 
:(
    Опции темы
Vitus
  Дата 23.7.2002, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Проблема в следующем, братья программисты!
Нужно написать что-то вроде RADIUS и TACACS сервера, т.е. проще говоря, необходимо для начала научиться читать порты UDP и TCP, ну и естественно уметь писать в них, т.е. таким образом управлять Cisco.
В этом деле я новичек, поэтому буду примного благодарен, если кто даст дельный совет, наверняка опыт у кого-то уже есть.
Да, только не пишите что-то вроде: "нахрена тебе надо изобретать велосипед, возьми говоторый сервак". В том-то и дело, что нужно все написать с нуля.
PM MAIL ICQ   Вверх
Spawn
Дата 23.7.2002, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Vitus @ 23.7.2002, 11:39)
Проблема в следующем, братья программисты!
Нужно написать что-то вроде RADIUS и TACACS сервера, т.е. проще говоря, необходимо для начала научиться читать порты UDP и TCP, ну и естественно уметь писать в них, т.е. таким образом управлять Cisco.
В этом деле я новичек, поэтому буду примного благодарен, если кто даст дельный совет, наверняка опыт у кого-то уже есть.
Да, только не пишите что-то вроде: "нахрена тебе надо изобретать велосипед, возьми говоторый сервак". В том-то и дело, что нужно все написать с нуля.

Насколько я знаю, если ты будеш раблтать с Server- и ClientSocket-ами, то для начала надо в файле WIndows\Servies добавить новый порт, через который ServerSocket будет 'слушать' приходящие данные(комп надо перезагрузить).
Добавлять, например, следующим образом:
testport  777/tcp
Причем номер порта не должен совпадать с уже существующими!
Также надо в ClientSocket установить IP-адрес.
Для чтения или записи существуют события OnRead и OnWrite, послыть текст например можно так:

ClientSocket1.Socket.SendText(Text);

Принять :

ServerSocket1.Socket.ReceiveText;

Также можно работать с много чем еще:
SendBuf(var Buf;Count:Integer):Integer;
SendStream(AStream:TStream):Boolean;
И т.д.
PM MAIL   Вверх
Vitus
Дата 23.7.2002, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я даже пока не знаю с чем мне лучше работать, я бы хотел узнать с чем лучше и проще. Есть в Delphi компонент TNMUDP, может его можно использовать? Если да, то как именно?
Spawn, ты пишешь "надо в файле WIndows\Servies добавить новый порт", а где
этот файл лежит-то?
Может есть уже конкретные исходники, где можно посмотреть как именно это все делается?
PM MAIL ICQ   Вверх
Spawn
Дата 23.7.2002, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Vitus @ 23.7.2002, 13:00)
Я даже пока не знаю с чем мне лучше работать, я бы хотел узнать с чем лучше и проще. Есть в Delphi компонент TNMUDP, может его можно использовать? Если да, то как именно?
Spawn, ты пишешь "надо в файле WIndows\Servies добавить новый порт", а где
этот файл лежит-то?
Может есть уже конкретные исходники, где можно посмотреть как именно это все делается?

Сорри, я малость ошибся Windows\SERVICES (он без расширения)
Пример работы с этими компонентами, например в
Borland\Delphi6\Demos\Internet\Chat.
На счет других компонентов я пока не знаю так как совсем недавно начал заниматься Delphi.
PM MAIL   Вверх
Fantasist
Дата 23.7.2002, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй
***


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

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



Есть замечательные компоненты Indy которые приходят вместе с Delphi6 или скачиваются с torry.net. Я правда с ними не работал, но поработав с NM и TClient/ServerSocket компонентами думаю, что indy должны быть лучше, так о них все говорят.


--------------------
Волны гасят ветер...
PM MAIL   Вверх
Spawn
Дата 23.7.2002, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Если же делать сервер, который будет работать со многими пользователями, то и сообщения может понадобиться отсылать всем. Для етого существует свойство ServerSocket-а - ActiveConnections. Вот так можно разослать сооющения всем подключённым юзерам:

for i:=0 to ActiveConnections-1 do
ServerSocket1.Socket.Connections[i].SendText(text);

На счет UDP-в литературе написано, что TCP и UDP почти ни чем не отличаются.
PM MAIL   Вверх
dead_ricky
Дата 23.7.2002, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Вот из Хакер'a (журнал такой :)) пример работы с компонентом indy через UDP протокол. Пример назывется чат для локалки...

Надо скинуть на форму два компонента: idUDPClient с закладки indy Clients и idUDPServer с закладки indy servers.

idUDPClient1.Host := "IP адресс компа которому надо отсылать сообщения", если для всех компов в сетке, то послеждние три цифры 255, че-нить вроде 192.168.100.255 .

idUDPClient.Send(Edit1.Text) - отправка содержимого строки ввода (Edit1)

Для получения инфы, создаешь обработчик OnUDPRead для idUDPServer.

procedure TForm1.idUDPServer1UDPRead(Sender: TObject; AData: TStream; ABinding: TidSocketHandle);
var
 StringFormatedStream: TStringStream;
 s : String;
begin
 //инициализация
 StringFormatedStream := TStringStream.Create('');
 {Копирование из простого потока в строковый
 Полученные данные приходят как простой неформатированный поток      
 TStream, Для удобства перегоняем в текстовый поток...}
 StringFormatedStream.CopyFrom(AData, AData.Size);
 //Вывод полученного сообщения
 Memo1.Lines.Add(ABinding.PeerIP + ' ' + StringFormatedStream.DataString);
 //Перенаправление сообщения дальше
 ABinding.SendTo(ABinding.PeerIP, ABinding.PeerPort, s[1], length(s));
 //Освобождение строкового потока
 StringFormatedStream.Free;
end;

З.Ы. Пример не проверял, но думаю журналу можно доверять. Вообще у автора есть сайт - www.cydsoft.com/vr-online - как говорит сам автор она тама все примеры выкладывает.
Еще одни З.Ы. Надеюсь хоть чем-то помог типа :)
PM MAIL   Вверх
Vitus
Дата 23.7.2002, 18:13 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











1.Кто скажет, где взять бесплатные компоненты Indy?
2.Кто-нибудь работал с компонентом TNMUDP?
  Вверх
Vit
Дата 23.7.2002, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


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

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



Цитата(Guest @ 23.7.2002, 10:13)
1.Кто скажет, где взять бесплатные компоненты Indy?

Они входят в состав поставки Дельфи 6


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Vitus
Дата 23.7.2002, 18:34 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











То что они входят в D6 я знаю, но у нас в компании стандарт D5! Может из можно как-то отдельно инсталлировать? ...бсплатно  :rolleyes
  Вверх
Vit
Дата 23.7.2002, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


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

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



Это коммерческие компоненты.

PS. Вопросы взлома и cracks на этом форуме не обсуждаются. Не заставляйте закрывать топик.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

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

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

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

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

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


 




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


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

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