| 
| 
 | Вопрос # 2 216/ вопрос открыт / | 
 |  Доброго времени суток, уважаемые эксперты!Долго мучался, искал в интернете, но так ничего и не нашол.
 Я не могу принять данные, которые приходят на внешний IP (в своей программе)
 У меня IDSL роутер.
 Вопрос: Как мне их принять?
 
 П.С. в моей программе пишет ошибку:  Asynchronous socket error 10061
 П.П.С. программа - это простейший пример. на самом деле планы более высоко моральные =)
 
 ... если выход в настройках модема - как работает тогда моя аська?
 К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса) 
|  |   Вопрос задал: Дима Каримов (статус: Посетитель)Вопрос отправлен: 19 декабря 2008, 23:18
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 18; последнее сообщение — 26 декабря 2008, 16:02; участников в обсуждении: 4. 
|   | Вадим К (статус: Академик), 20 декабря 2008, 00:05 [#1]:Ваша программа хочет быть сервером или клиентом? если сервером, то не получиться. А аська работать будет - она как клиент работает. Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Вадим К (статус: Академик), 20 декабря 2008, 12:44 [#3]:to  Косолапов Дмитрий Юрьевич Хорошо подумали о том, что написали? 10061 это никакой не порт. Это обычный код ошибки при работе с сокетами.
 10061 это Connection Refused. То есть, сервер отказал. Это заосряет вопрос - так как сервер возможно существует, но подожём коментариев от вопрошающего.
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Дима Каримов (статус: Посетитель), 20 декабря 2008, 23:59 [#4]:Есть сервер. Есть клиент. Есть внешний IP. Клиент пытается сконектится с сервером по внешнему IP.
 При попытке это сделать вылетает ошибка 10061.
 Как обойти ошибку мне доконца не известно, нужно использовать upnp функцию роутера.
 |  
|   | Дима Каримов (статус: Посетитель), 21 декабря 2008, 00:01 [#5]:П.С. не так написал "нужно использовать upnp функцию роутера."
 не мне нужно, а, как мне сообщили, можно попытатся так обойти это.
 |  
|   | Дима Каримов (статус: Посетитель), 21 декабря 2008, 00:04 [#6]:Я писал "как работает тогда моя аська?"
 
 Вадим К
 Вы писали "А аська работать будет - она как клиент работает"
 
 сорри, не подумал до конца =)
 |  
|   | Вадим К (статус: Академик), 21 декабря 2008, 01:57 [#7]:Нравиться, когда люди услышат умное слово, начинают использовать без надобности. Проблема решается просто - многие нормальные роутеры имею функцию "переброски портов". Обычно даже интерфейс примитивный - надо указать порт на входе роутера, куда будут коннектиться клиенты, и порт и адрес компьютера за роутером (то есть Вашего), куда перенаправить данные. Обычно эти два порта совпадают. Обычно это называется Mapped port.
 А UPnP - это технология, которая позволяет умным устройствам соединяться между собой и не просто  соединяться, а ещё и настраивать друг друга.  Например этот протокол любят использовать битторрент клиент, которому желательно иметь реальный IP.
 Сам роутер в этом случае должен иметь только включенным эту службу.   А настраивает сам компьютер - он должен иметь включенную службу.
 Но настройка этого всего это уже не программирование - это уже системное администрирование.
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Дима Каримов (статус: Посетитель), 21 декабря 2008, 20:34 [#8]:Яссно. Я думал можно как-то программно открыть порт и получить данные, которые пришли, на этот порт, на внешний IP. 
 Раз программно нельзя, то буду действовать через уже открытые порты ( не важно ).
 
 Спасибо за помощь)
 |  
|   | Вадим К (статус: Академик), 21 декабря 2008, 21:33 [#9]:Ну программно можно сделать, почему нельзя. Либо попросить службк UPnP открыть нужный порт, либо написать небольшую программу, которая сама добавит порт, когда ненадо - удалит. Программа может сделать это через веб интерфейс, а можно и через telnet протокол - некоторые роутеры поддерживают такую  функцию. Но если это единоразовая операция - то лучше просто сделать один раз это ручками.
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Дима Каримов (статус: Посетитель), 21 декабря 2008, 22:54 [#10]:наверно не лишним будет сказать что это за программа: это игра) и кто-то должен быть сервером, а кто-то клиентом ( по крайней мере так было задумано, и работало до тех пор пока я, со своим модемом не стал сервером) 
 Думаю в этом случае лучшим выходом будет программа. Чем кучка "умных" людей, ковыряющих компьютер.
 
 Есть еще вариант - сделать оччень простенький сервер на РНР, разместить его где-нибудь, и пусть будет посредником... просто моему пытливому уму не хватает просто "альтернативного варианта" =) ... это я оставил на крайний случай ... (а если правду - я не знаю РНР))
 
 ... и есть еще одна проблема - я в знании протоколов (что с их помощью можно сделать) я не сильно силен.
 Если можно, можете немного подробней описать как это сделать, или, в крайнем случае, сказать где это можно узнать (типо, хочешь узнать про динозавров открой википедию).
 
 Заранее спасибо
 |  
|   | Вадим К (статус: Академик), 22 декабря 2008, 00:11 [#11]:Я думаю, что PHP тут не сильно поможет. Он хорошо работает для генерации страниц, но не для прокси. К тому же, я подозреваю, что на сервер  нужно ставить программу. А это может быть и невозможно. Хотя смотря какая игра.
 Протоколы... Многие игры используют свой протокол, основанный на TCP/UDP и если это только не Ваша игра, то реверсинг протокола может быть увлекательным занятием. Но если программа хочет быть сервером, то  вынести из за роутера  практически нереально.
 Проще перебросить в роутере порт. Да и правильнее с идеологической точки зрения.
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Дима Каримов (статус: Посетитель), 22 декабря 2008, 15:48 [#12]:"Проще перебросить в роутере порт" 
 А как это сделать. Полазить в настройках своего роутера, и открыть порт?
 |  
|   | Вадим К (статус: Академик), 22 декабря 2008, 16:04 [#13]:да. просто в разных роутеров это в разных местах. Но я написал, как это должно выглядеть приблизительно. Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Дима Каримов (статус: Посетитель), 22 декабря 2008, 16:36 [#14]:ясно, спасибо за помощь) буду писать "руководство"
 |  
|   | Косолапов Дмитрий Юрьевич (статус: 8-ой класс), 23 декабря 2008, 10:35 [#15]:Собственно, это обычная практика - если человек "сидит за роутером" и хочет "поднять сервер", то соответствующий порт "пробрасывается" в роутере. |  
|   | Пупкин В.В. (статус: 1-ый класс), 23 декабря 2008, 10:48 [#16]:php однозначно не поможет для вашей задачи. игра предпологает активный обмен данными. |  
|   | Дима Каримов (статус: Посетитель), 26 декабря 2008, 15:13 [#17]:... в общем, программно это реализовать нельзя? |  
|   | Вадим К (статус: Академик), 26 декабря 2008, 16:02 [#18]:на php сервер для игры... универсальный вариант - нет. А для какой то специальной - вполне может быть. Сложно говорить о сферическом коне в вакууме. Галочка "подтверждения прочтения" - вселенское зло. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |