![]() |
|
Модераторы: feodorv |
![]()
|
|
| DaptlOM |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 20.10.2009 Репутация: нет Всего: нет |
Доброго времени суток всем участникам форума!
При написании программы, позволяющей обмениваться двум пользователям сообщениями в сети, возникли проблемы при работе с Интернет. Структура программы - клиент и сервер в одном приложении, т.е. прямая передача сообщения. При написании программы использовал компоненты Инди. Вначале опишу что на данный момент достигнуто: 1. Программа хорошо себя чувствует в локальной сети (имеется роутер). 2. В Интернет посылает сообщения только после того, как я указываю в параметрах роутера порт, который использует программа (т.е. прописываю, что данный порт является public). 2.1. Программа посылает и принимает сообщения, посланные через Интернет (глобальный IP) на свой же компьютер. 2.2. Отсылал прогу двум людям, у них тоже роутеры, но совести заставлять их лезть в настройки не хватило, да и неудобно будет пользователям использовать такую программу. Без дополнительных настроек они спокойно посылают сообщения мне, программа, запущенная на моем компьютере их получает, но послать сообщения им я не могу. Пишет ошибку 'Socket Error # 10061' - как я понял - ошибка подключения к серверу. Мои предположения: 1. Проблема роутера - просто программе нужно, чтобы каждый ручками открыл нужный порт. 2. У людей, которым я отсылал нет внешнего IP (это я вычитал здесь http://forum.vingrad.ru/topic-247404.html), в чем я сильно сомневаюсь, там как у одного из них Акадо. В чем я прошу помощи: 1. Если проблема все-таки в роутере, как сделать так, чтобы программа нормально передавала сообщения без прямого вмешательства пользователя. Я использую любой порт из нестандартных, лишь бы он не был определен другими приложениями и был прописан в роутере (ну, хотя бы 34510). При попытке прослушивания стандартных портов 80 и 443 сервер просто вырубается. К сожалению у меня нет достаточного опыта работы с сетями, чтобы понять из-за чего это, но мне кажется, что причиной служит мусор с других приложений, использующих эти порты, и стандартный индевский сервер просто не справляется. Хотелось бы понять, что можно здесь сделать, ведь такие мессенджеры, как та же ася, справляются с этой задачей без вмешательства со стороны пользователя. Отдельно хочу сказать о скайпе: у него вообще порт, который он использует (он у всех разный, например 34867), пока скайп включен, определсяется сайтом utorrent как открытый. Вот интересно, как он его так открывает без усилий со стороны пользователя. Код сервера и клиента привожу ниже: Клиент:
Сервер:
P.S. Спасибо всем, кто отзовется! P.P.S. И еще - это плохо, что у меня дисконнект после каждой передачи/приема сообщения? |
||||
|
|||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |