Irc клиент на delphi


Помощь в кодировании IRC-клиента в Delphi 2010 с использованием Indy Components

Я пытаюсь закодировать базовый клиент irc в Delphi 2010 с использованием компонентов Indy. Я могу подключиться к моему серверу irc (unrealircd), используя образец A. ниже.

После подключения у меня есть много процедур, которые должны выполнять действия, когда он получает личное сообщение, ping, ctcp, режимы канала и т.д., но они никогда не реагируют на какие-либо из этих входящих событий.

Образец A: Это соединение с IRC-сервером при нажатии кнопки4. Он успешно присоединяется к каналу с указанным именем.

Эти события не работают вообще, и во время компиляции не генерируются ошибки.

У меня было несколько человек, которые смотрели на это, и похоже, что некоторые проблемы с unicode уничтожили мою настройку TClientSocket irc, и даже когда я перешел на indy и использовал образцы с официального сайта, я все еще не мог ничего угнать например, событие onconnect.

У друга была копия приложения, которое он написал в Delphi 2010, используя ту же версию indy, и мне удалось импортировать его проект, и он начал работать.

Простой клиент IRC Delphi/Pascal

Я искал навсегда на google о том, как сделать клиента IRC Delphi. Но ни в какое свободное время, и быть новым для языка Паскаля не помогло моим усилиям. Все, что мне нужно, это код, демонстрирующий, как подключиться к IRC-серверу на канале, и получать все, что отправлено только на этом канале (без личных сообщений).

delphi pascal client irc

1 ответ

Я написал один: RoIRC и open sourced it, но этот сайт, по-видимому, не позволяет открытому доступу к его SVN для нечленов, поэтому я скоро выложу его на github. Следите здесь

Irc клиент на delphi

Сообщения: 637
Благодарности: 20

Конфигурация компьютера
Память: DDR3 4 Gb
Видеокарта: NVIDIA GeForce 320M
Блок питания: SMP
ОС: MacOS X 10.6.4
Конфигурация компьютера
Память: DDR3 4 Gb
Видеокарта: NVIDIA GeForce 320M
Блок питания: SMP
ОС: MacOS X 10.6.4
Илон Маск рекомендует:  Что такое код biosdisk

Ваша privacy может подвергается опасности в IRC по следующим причинам:


Информация для подключения:

Официальный канал (сеть DalNet):

Сервер: irc.dalnet.ru (либо irc.tic-tac.ru)
Порт: 6667
Канал: #delphiintru

Настройка подключения в QIP 2010 / QIP Infium »

Настройка подключения в Opera »

Настройка подключения в Miranda »

Настройка mIRC

После запуска mIRC войдите в опции с помощью меню Tools -> Options. На вкладке Connect следует указать информацию о себе: имя, адрес e-mail и ник, который будет у Вас на канале. Посмотрите на следующий рисунок:

После этого перейдите на вкладку Servers. Здесь нужно указать сервер для подключения. Нажмите кнопку Add и заполните поля в окне так, как показано на рисунке:

Основные поля — IRC Server и Port(s). В поле Description можно ввести имя для канала. Введите туда что-либо, чтобы можно было быстро вспомнить, что это за сервер. После этого сохраните все настройки и подключитесь к серверу командой File -> Connect.

Чтобы иметь возможность общаться, нужно зарегистрировать свой ник. Для этого введите следующую команду:

/msg nickserv register пароль e-mail

Поле e-mail является необязательным, но рекомендуется его всё же указать. Если у Вас возникают проблемы с регистрацией, воспользуйтесь справкой, которая имеется на сервере. Для этого введите команду /msg nickserv help register

После того, как ник зарегистрирован, при каждом подключении к серверу нужно идентифицироваться, т.е. подтвердить, что Вы являетесь владельцем ника. Делается это следующей командой:

/msg nickserv identify пароль

После этого Вы можете войти на канал. Для этого введите команду /join #delphiintru

Процесс идентификации можно автоматизировать. Для этого зайдите в Tools -> Options. , на вкладке Options нажмите кнопку Perform. В этом окне можно указать команды, которые автоматически будут выполняться при подключении к серверу. Посмотрите на следующий рисунок:

Илон Маск рекомендует:  Конкурентный запуск php 3 и php 4

Не забудьте поставить галочку Enable perform on connect.

Если у Вас появятся какие-либо вопросы, Вы можете задать их нам по адресу support@delphi.int.ru

Ждём Вас на нашем канале! Приятного общения!

Indy 10 IRC Client Component

Indy 10 IRC Client Component

Indy 10 IRC Client Component

I’ve been screwing around with indy components a while, but could never get them to work out fantasticly. I recently got Indy 10 and now I’m TOTALLY lost.

The IRC Client component has me totally totally totally confused. I fill in all the fields as necessary, nick, altnick, host, port, etc (running on localhost irc server)

Please, can anyone shed some light on my ubern00bness? I’m sure its probably something stupid, like me.

RE: Indy 10 IRC Client Component

RE: Indy 10 IRC Client Component

Here is all the code relating to the irc client component. I dropped it on a form and simply filled in the details.
There are 3 buttons on the form, for connect, join a channel and disconnect. When i click the connect button it throws an access violation, so the other two buttons havent even been tested.

RE: Indy 10 IRC Client Component

sry for my english but try communicate :)
try run your irc client without delphi’s debugger

Red Flag Submitted

Thank you for helping keep Tek-Tips Forums free from inappropriate posts.
The Tek-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Tek-Tips forums is a member-only feature.


Click Here to join Tek-Tips and talk with other members! Already a Member? Login

Нужна помощь в кодировании IRC-клиента в Delphi 2010 с использованием Indy Components

Я пытаюсь кодировать основной клиент IRC в Delphi 2010 с использованием компонентов Indy. Я могу подключиться к моему irc-серверу (unrealircd), используя образец А ниже.

После подключения у меня есть много процедур, которые должны выполнять действия при получении личного сообщения, ping, ctcp, режимах канала и т. Д., Но они никогда не реагируют ни на одно из этих входящих событий.

Образец A: он подключается к IRC-серверу при нажатии кнопки 4. Он успешно присоединяется к каналу с указанным именем.

Эти события не работают вообще, и во время компиляции не генерируются ошибки.

1 ответ

У меня было несколько человек, которые смотрели на это, и кажется, что есть некоторые проблемы с юникодом, которые разрушили мою настройку irc TClientSocket, и даже когда я перешел в indy и использовал сэмплы с официального сайта, я все еще не мог получить что-либо для запуска, такое как Событие onconnect.

У моего друга была копия приложения, которое он написал в Delphi 2010 с использованием той же версии indy, и мне удалось импортировать его проект, и он начал работать.

HTTP Client API в Delphi

Как-то относительно незаметно для меня прошло одно из нововведений Delphi — HTTP

Итак, что из себя представляет HTTP Client API в Delphi 10.3 Rio (предыдущие версии не рассматриваю по той причине, что они у меня не установлены). В папке %InstallDir%\source\rtl\net\ обнаружены следующие модули, относящиеся непосредственно к работе HTTP-протоколом:

  • System.Net.FileClient.pas
  • System.Net.HttpClient.pas
  • System.Net.HttpClient.Android.pas
  • System.Net.HttpClient.Mac.pas
  • System.Net.HttpClient.Win.pas
  • System.Net.HttpClientComponent.pas
  • System.Net.Mime.pas
  • System.Net.Socket.pas
  • System.Net.URLClient.pas
  • System.NetConsts.pas

Наличие файлов типа System.Net.HttpClient.ХХХХХХ.pas уже как бы намекает на то, что HTTP Client API можно свободно использовать в разных операционных системах, что хорошо.

В модуле System.Net.HttpClientComponent.pas содержатся два компонента, которые Вы можете обнаружить также в палитре компонентов на вкладке Net:

  1. TNetHTTPClient — это ваш HTTP-клиент для работы с сервером
  2. TNetHTTPRequest — ваш запрос к HTTP-серверу

Возник сразу вопрос: почему не сделали тогда и третий компонент, например, TNetHTTPResponse (ответ сервера), по аналогии с тем, что сделано в REST Clietn Library, тем более, что класс ответа как таковой имеется. Но об ответах — позже.

TNetHTTPClient

TNetHTTPClient в плане построения напоминает аналогичный компонент от Indy, то есть каждый отдельный HTTP-метод (GET, POST, PUT и т.д.) представляет собой отдельный метод компонента и, соответственно, некоторые методы перезагружны (помечены как overload).

Попробуем воспользоваться HTTP-клиентом в Delphi, отправить какой-нибудь запрос и получить ответ. На форме тестового приложения я поместил TMemo для вывода результата, одну кнопку и компонент TNetHTTPClient. Обработчик метода OnClick кнопки сделал следующим:

Результат не заставил себя долго ждать:

Этот пример примечателен сам по себе по следующим причинам:

  • во-первых, TNetHTTPClient сделал правильный редирект на необходимый адрес, так как блог webdelphi в настоящее время доступен по https и запрос на адрес http://webdelphi.ru возвращает код 301 (Moved Permanently).
  • во-вторых, так как мне необходимо было только вывести содержимое главной страницы в Memo — я не создал ни одной лишней переменной в коде.

В принципе, возможности как по перенаправлению на необходимый адрес, так и работа с контентом без лишних манипуляций с переменными имеется и в той же Indy, однако, работа TNetHTTPClient организована несколько иначе. Рассмотрим по прядку.

Управление перенаправлением в TNetHTTPClient

У компонента определено следующее свойство:

Это свойство позволяет нам настроить различное поведение компонента в зависимости от используемого HTTP-метода и возвращаемого кода статуса. Например, мы можем делать перенаправление, если при использовании метода POST сервер вернул нам код 301 и не перенаправлять пользователя на другой адрес, если сервер вернет код 302 и так далее.

Также определены и такие свойства как:

Соответственно, свойство HandleRedirects позволяет или запрещает делать автоматические перенаправления, а MaxRedirects определяет максимально возможное количество перенаправлений пользователя.

В отличие от Indy, которая норовит по каждому поводу выкинуть какое-нибудь исключение, TNetHTTPClient работает «по-тихому», как Synapse, то есть не считает, что коды 3хх — это тот случай, когда надо создавать исключение и останавливать работу, а просто сохраняет ответ и ожидает дальнейших действий.

Двигаемся далее. Рассмотрим как работают различные методы в TNetHTTPClient

HTTP-методы в TNetHTTPClient

Компонент поддерживает следующие стандартные HTTP-методы:

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL