![]() |
|
Модераторы: feodorv |
![]()
|
|
| rubic_ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 15.2.2008 Репутация: нет Всего: нет |
Здравствуйте, нужна помощь. Решил разобраться в сетевом программировании на С++, но в сетях полный ноль. поискал по инету статьи(первоначальная задумка была создать что-нить простое. чтобы передавался какой-нить файл с сервера на клиент). Нашел статью, которая неплохо расписывала мою задумку.
Статья была на основе TClientSocket and TServerSocket. Я посчитал, что это способ проще по сравнению с функциями WinApi и решил начать с него. В компоненте TClientSocket есть два свойства Adress and hostю в статье они заполнялись 127.0.0.1(я потом вкурил что это мой ip относительно себя. мол так удобней тестить) Но когда я попробывал приконнектиться к другому человеку, то тут встал вопрос, что в писывать в хост? т.е. есть 2 ip адреса. 1 внешний, другой внутренний. я прописал в поле Adress - внешний host - внутренний и странность в том. что если я запускаю со своего компа и клиент и сервер. они по этим адресам коннектяться, а если ко мне коннектяться с другого компа, то выдает ошибку, мол нет соединения. В чем моя глупость состоит? |
|||
|
||||
| criz |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 13.2.2008 Репутация: нет Всего: нет |
В Address нужно(желательно) вводить ИП машины, а в Host - имя машины.
TServerSocket'ом ты открываешь порт на прослушку, а TServerClient'ом - делаешь коннект. З.Ы, вроде так |
|||
|
||||
| rubic_ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 15.2.2008 Репутация: нет Всего: нет |
Ну вот я тоже пока как-то так знаю. Хотелось бы ответ более уверенный и точный
|
|||
|
||||
| criz |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 13.2.2008 Репутация: нет Всего: нет |
В Address можно указывать только IP. А в Host'e можно ИП или хост-имя компа.
Если в Host указывается имя компа, то IP будет запрошен у DNS. Вот ;) |
|||
|
||||
| rubic_ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 15.2.2008 Репутация: нет Всего: нет |
не работает не через имя, не через вн. ip/ скажите как правильно настроить его, чтобы он через инет робил?
|
|||
|
||||
| criz |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 13.2.2008 Репутация: нет Всего: нет |
Там не нужно никаких "внешних/внутренних IP". Указывать надо только IP-машины, к которой нужно приконнетиться.
Также надо указать открытый(прослушиваемый) порт удаленной машины. После установления соединения, можно передавать данные |
|||
|
||||
| rubic_ |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 15.2.2008 Репутация: нет Всего: нет |
Сервер
Клиент
если вбить в ip свой ip(внешний), а в хост имя компа. при условии, что сер запущен на той же машине все робит. Если с того же клиента запустить с теми же данными на дургой машине, не устанавливает связь. |
||||
|
|||||
| criz |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 13.2.2008 Репутация: нет Всего: нет |
Попробуй в ClientSocket1 ввести в address ИП сервера, а в Host внеси результат gethostbyaddr()....
З.Ы. вот пример на делфи -- http://docs.luksian.com/programming/delphi/prsokdelph/ |
|||
|
||||
| rubic_ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 15.2.2008 Репутация: нет Всего: нет |
спс
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |