|
86 / 86 / 13
Регистрация: 03.03.2011
Сообщений: 1,873
|
|
Чат (интернет) - какие компоненты и протоколы использовать13.05.2011, 17:45. Показов 4783. Ответов 10
Метки нет (Все метки)
Хочу написать чат по интернету
1 вопрос - какие компоненты лучше использовать? 2 вопрос - каким протоколом(протоколами) лучше пользоваться? буду очень благодарен за наброски(код) и за ссылку на сайт,с данной тематикой
0
|
|
| 13.05.2011, 17:45 | |
|
Ответы с готовыми решениями:
10
Игра 2048, какие компоненты использовать? Сетевые протоколы, какие протоколы добавить, чтобы они поддерживались не всеми оборудованиями
|
|
0 / 0 / 1
Регистрация: 18.04.2011
Сообщений: 4
|
|
| 13.05.2011, 20:24 | |
|
Меня тоже это очень сильно интересует. Буду очень благодарен, если вы и мне поможите . Я в Delphi среде уже года два, а толком ни чего не умею .
0
|
|
|
4 / 4 / 2
Регистрация: 24.05.2011
Сообщений: 12
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 24.05.2011, 13:18 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Создание клиент-сервера
В этой статье хочу поделиться опытом в создании клиент-сервера, который может быть использован, как для реализации сетевого чата, так и для применения в играх. Основой служат два компонента из стандартного пакета Delphi, это ServerSocket и ClientSocket. Они не всегда могут быть отображены в палитре Internet, и их нужно загрузить следующим образом: выбрать меню: Component – Install Packages… – Add., далее нужно указать файл …\bin\dclsockets70.bpl. Перейдем непосредственно к созданию проекта клиент-сервера, для начала на примере сетевого чата. Сетевой чат на двух пользователей Как правило, разработка любой программы начинается с определения задач, которые она должна выполнять, и определения уже на этом этапе нужных компонентов. Наша программа представляет собой чат на двоих пользователей, каждый из которых может быть как сервером, так и клиентом, значит, кидаем в форму компоненты ServerSocket и ClientSocket. Важным параметром для обоих является порт. Только при одинаковом значении свойства Port, связь между ними установится. Кинем в форму компонент Edit, чтобы оперативно изменять порт, назовем его PortEdit. Для соединения с сервером необходимо указывать IP сервера или его имя, поэтому кинем еще один Edit, назовем его HostEdit. Так же нам понадобятся еще два Edit’а для указания ника и ввода текста сообщения, назовем их NikEdit и TextEdit, соответственно. Текст принимаемых и отправляемых сообщений будет отображаться в Memo, кинем его в форму и назовем ChatMemo. Установим сразу вертикальную полосу прокрутки: ScrollBars = ssVertical, и свойство ReadOnly = True. Добавим клавиши управления Button: ServerBtn – для создания/закрытия сервера, ClientBtn – для подключения/отключения клиента к серверу, SendBtn – для отправки сообщений. Изменим Caption этих клавиш на “Создать сервер”, “Подключиться” и “Отправить”, соответственно. Последний штрих – добавим надписи Label для предания форме надлежащего вида (это по желанию). Изображение http://pblog.ru/wp-content/uploads/gamechat.jpg Предупрежу сразу, проверок на корректность ввода значений в кодах не будет, поскольку это не есть главная цель. Проверки без труда вы можете прописать сами. Определим, что должно происходить при создании формы. Опишем процедуру OnCreate:
Возникает вопрос: а если нужно передать данные и совсем не строковые, а какой-нибудь массив? Для этого есть специальные команды. Давайте попробуем написать алгоритм отправки массива, как команды для некоторой игры. Отправка массива данных Воспользуемся той же формой чата, только добавим несколько компонентов чуть ниже. Пусть задача – управлять объектом типа Shape, менять тип геометрической фигуры, цвет, размеры. Поместим в форму компонент GroupBox, а в него Shape, их имена будут такими же. Для изменения типа геометрической фигуры используем список ComboBox, назовем его ShapeCBox. Сразу заполнять не будем, это сделаем в OnCreate формы. Далее понадобится такой же ComboBox для выбора цвета, и два Edit’а для указания размера фигуры (в случае с прямоугольником имеем два значения, на круг будем использовать одно первое). Назовем их ColorCBox, Value1Edit, Value2Edit, соответственно. Последним кинем в форму компонент Button, назовем его SendBufBtn, Caption изменим на “Отправить буфер”. Немного о том, как представить вводимые данные в виде буфера данных. Нужно сразу определиться в последовательности, какое значение, за каким следует в буфере. Пусть первым будет тип фигуры, за ним цвет, а следом оба значения размера. Для этих целей следует использовать массив длиной 4 и типом Byte. Добавим в раздел var массив:
синий 2 Этого вполне хватит для демонстрации. По желанию круг параметров можно расширить, ввести тип заливки, тип контура, смещение, или воспользоваться примером для других целей. Пропишем заполнение списков в OnCreate формы:
Исходник
1
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
25 / 14 / 1
Регистрация: 13.08.2010
Сообщений: 330
|
|
| 04.05.2012, 18:42 | |
|
Локально работает, а через интернет выдает ошибку Asynchronous socket error 10051 в чем может быть проблема?
0
|
|
|
86 / 86 / 13
Регистрация: 03.03.2011
Сообщений: 1,873
|
|
| 04.05.2012, 22:04 [ТС] | |
|
в том,что компьютеры не видят друг друга в сети, т.к. имеют "серый" ip,чтобы они друг друга видели нужен "белый" ip,грубо говоря как у сервера
поэтому данный подход для создания чата через интернет не подходит
0
|
|
|
25 / 14 / 1
Регистрация: 13.08.2010
Сообщений: 330
|
|
| 05.05.2012, 09:00 | |
|
Разъясните, что значит серый? Я внешний ip указывал. Подскажите, где реализованы примеры чата через интернет
0
|
|
|
86 / 86 / 13
Регистрация: 03.03.2011
Сообщений: 1,873
|
|
| 05.05.2012, 15:23 [ТС] | |
|
серый значит что его не видно в интеренете,виден только ip провайдера,а он распространяет сеть на вас
я сам в этом не разбирался толком,так что могу что-то неверно говорить. сам я написал чат(до конца не доведенный, но все же рабочий) на основе php сервера и протокола http в этой теме В один прекрасный момент программа виснит можно найти исходники и exe. большинство кода прокомментировано
0
|
|
|
25 / 14 / 1
Регистрация: 13.08.2010
Сообщений: 330
|
|
| 05.05.2012, 21:04 | |
|
нет не тот случай, тк проги для удаленного доступа которые требуют ввода ip работают, а чат найти не могу
0
|
|
|
86 / 86 / 13
Регистрация: 03.03.2011
Сообщений: 1,873
|
|
| 05.05.2012, 22:07 [ТС] | |
|
тогда не знаю,я реализовывал так. естейственно есть куча других вариантов
0
|
|
|
25 / 14 / 1
Регистрация: 13.08.2010
Сообщений: 330
|
|
| 06.05.2012, 01:29 | |
|
Так и все таки, как же организовать текстовый чат между двумя пользователями интернета?
Добавлено через 23 минуты Я понял, с созданием программы общения текстом через интернет существуют сложности с выходом на ip без организации отдельного сервера в интернете, который будет онлайн 24 часа в сутки. Тогда вопрос боком: Кто может организовать чат по Jabbеr-протоколу? Я согласен вознаградить, пишите в личку
0
|
|
|
25 / 14 / 1
Регистрация: 13.08.2010
Сообщений: 330
|
|
| 21.06.2012, 01:43 | |
|
Подскажите где можно почитать документацию по протоколу Jabber, ICQ и т.д. ?
0
|
|
| 21.06.2012, 01:43 | |
|
Помогаю со студенческими работами здесь
11
Файловый менеджер, какие компоненты использовать Какие компоненты использовать в таком случае? Какие компоненты использовать для игры? Какие компоненты для работы с БД использовать? Какие компоненты использовать для такого сайта? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Рецензия / Мнение
Это мой обзор планшета X220 с точки зрения школьника.
Недавно я решила попытаться уменьшить свой. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|