|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.10.2008, 11:02 | #1 |
Пользователь
Регистрация: 10.03.2008
Сообщений: 68
|
Почему программа не работает в Интернете
Вот решил составить программу для чата. Возможно, кто-то поругает за реализацию соединения (посылаем "1" и "2"), но это пока эксперементы. Исходники довольно большие, поэтому смотрите все во вложении.
А теперь пояснение к этому всему. В архиве лежат клиент и сервер. По началу надо запускать сервер. Если неохота вдумываться в весь код, то технология соединения такая: запускается сервер, затем запускается клиент. Клиент посылает серверу "1" с интервалом в 1 секунду. Как только сервер получит "1", он посылает обратно клиенту тоже "1" и с интервалом в 1 секунду, но уже используя другое соединение и порт. Вот. Если клиент получит от сервера "1", то он шлет ему "2"(то есть, клиент понял, что достучался до сервера) и ждет соответственно, пока закончиться очередь из "1" сервера и сервер пошлет ему тоже "2" как символ конца очереди. После этого считаеться, что соединения установилось и делаеться активность кнопки "Отправить". Так же формы меняют заголовки на "Клиент - Подключен" и "Сервер - Подключен". Так вот, это все технология. На локальном (одном) компе все работает прекрасно. В локальной сети(там, где адреса вида 192.168.1.xxx) из 2 компьютеров, тоже все работает прекрасно. А вот в интернете не пашет. Само собой, нажимаю и кнопку разблокировать из предупреждения брандмауэра, и в компоненты вбиваю внешние IP-адреса - никак. Уже замучался сам и своих друзей тоже замучал своим эксперементом. В чем может быть проблема? Может надо интервал "пинга" сделать более 1 секунды или что-то поменять в свойствах компонентов? Технологию пинга из "1" и "2" прошу ругать только в том случае, если действительно именно в ней ошибка установления связи. Заранее ОГРОМНЕЙШЕЕ СПАСИБО. Ах, да, вот и вложение, кстати. |
28.10.2008, 11:11 | #2 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
обе стороны доступны друг другу ?
сделайте постенькое приложение: клиент : IdTcpClient сервер IdTcpServer и проверьте устанавливаетсмя ил соединение между компьютерами, а потом уже мыслите в остальные стороны
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
29.10.2008, 18:59 | #3 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,537
|
Цитата:
Сервер должен только отвечать на запросы в рамках соединения
программа — запись алгоритма на языке понятном транслятору
|
|
02.11.2008, 14:36 | #4 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Если сервер висит на чистом IP-адресе, то до него можно достучаться хоть из преисподни, а если провайдер инет-соединения подменяет внешний IP-адрес своим, то бесполезно. Это требование, предъявляется только серверу.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
02.11.2008, 23:02 | #5 |
Пользователь
Регистрация: 01.11.2008
Сообщений: 51
|
В этом случае быстрым ришением будет только привязка к ай пи.
Самый лучший компьютер, к тому же единственный, который можно производить в большом количестве с помощью неквалифицированного труда, — это человек.
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
почему не работает | domovoi | Общие вопросы Delphi | 1 | 15.10.2008 18:42 |
Почему моя программа РАБОТАЕТ!!! | aesoem | Общие вопросы Delphi | 3 | 09.05.2008 23:50 |
Подскажите почему не работает программа??? | Danilyuk | Помощь студентам | 2 | 25.01.2008 10:15 |