Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Интернет чат


Автор: Antony41 5.3.2010, 21:41
Здравствуйте мне необходимо написать сервер/клиент приложение, для обмена информации что то вроде чата, в интернете, Мне еще не включили статический IP, хотелось бы узнать можно ли реализовать. У меня будет стоять сервер программа, у которой будет постоянный статический адрес, а ответы как посылать??? на динамические адреса что ли? Все это через UDP протокол...

Автор: Exai1e 5.3.2010, 22:42
как вариант, не самый лучший, но:
если есть хостинг (аля народ,укоз), можно использовать связку сервер (твой) + хостинг (хоть файл текстовый с адресом в который сервер при своем запуске будет заносить свой IP а клиенты, при запуске - считывать), хоть web service какойнить

Автор: Antony41 6.3.2010, 01:24
Это понятно! я про то как клиентам отсылать сообщения,

тоесть например если взять локальную сеть то например у сервера компьютера локальный IP 10.0.0.3, а у клиента 10.0.0.4 то для отправки нужно использовать 10.0.0.3.

Беру свой динамический адрес который у меня сейчас и в клиенте пытаюсь отправить запрос передать что нибудь, а сервер данных не получает ни каких, тоесть у меня UDP протокол работает внутри сети, вот я спрашию будет ли приниматься данные если я пропишу статический IP

Автор: Antony41 11.3.2010, 16:16
Так мне никто и не ответит на мой вопрос?

Автор: kami 11.3.2010, 19:42
Цитата(Antony41 @  5.3.2010,  21:41 Найти цитируемый пост)
 Все это через UDP протокол

Далеко не факт, что получится. В прямом при наличии "белого" IP - да, всё будет возможно нормально (не забываем, что UDP не гарантирует доставку). А в обратном... Мало того, что UDP пакет может просто не пройти в обратном направлении через NAT (здесь говорили в других темах, что это более чем возможно, т.к. если UDP пакет прошел в прямом направлении, то какое-то время вероятно обратная дорога будет открыта). Так еще и не факт, что UDP пакет вообще пройдет, т.к. это протокол без гарантированной доставки.
В общем, черезчур много "если".

А чем обусловлена необходимость строить интернет чат на UDP протоколе? В локалке он, возможно/скорее всего, будет оптимальным, а вот для тырнета лучше брать TCP...

Автор: kami 11.3.2010, 20:09
Upd: на вопрос-то так и не ответил...
Цитата(Antony41 @  5.3.2010,  21:41 Найти цитируемый пост)
а ответы как посылать??? на динамические адреса что ли?

Да, на те, которые определились на сервере. Другие просто не будут восприняты и однозначно потеряются.

Автор: Snowy 12.3.2010, 13:18
Я что-то не понял проблемы.
Есть статический адрес. Есть сервер.
Клиент подключается к серверу по известному статическому адресу.
Клиент подключился, установил соединение.
Ну и шли ему ответы по этому соединению.
Зачем серверу знать, как подключаться к клиенту? 
В этом нет смысла - клиент сам устанавливает соединение.

Добавлено через 1 минуту и 13 секунд
Да, и UDP в условиях интернета - не самая лучшая затея...

Автор: Antony41 12.3.2010, 16:13
Хорошо всем спасибо! скажите а если писать на TClientSocket, на каком протоколе работает tcp или udp?

Автор: Mikel 12.3.2010, 16:41
Смотрите ICS

Автор: kami 12.3.2010, 18:19
Цитата(Snowy @  12.3.2010,  13:18 Найти цитируемый пост)
Клиент подключился, установил соединение.Ну и шли ему ответы по этому соединению.

Так в том-то и дело, что при UDP соединения как такового и нет smile

Цитата(Antony41 @  12.3.2010,  16:13 Найти цитируемый пост)
если писать на TClientSocket, на каком протоколе работает tcp или udp?

TClientSocket это минимальная надстройка над TCP.

Автор: Antony41 13.3.2010, 07:21
С udp  протоколом понятно, значит лучше использовать сокеты которые используют tcp?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)