![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
там как раст втой инет_нтоа и стоит.
Кстати зачем нужен бинд, я его не использую, а в твоем примере он есть -------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| dim |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 24.12.2002 Репутация: нет Всего: нет |
bind привязывает сокет к определенной паре адрес - порт (замечу что можно еще привязать к всем IP на данном порту). У тебя он не вызывается, потому что CAsyncSocket делает это сам в вызове Create().
Приведи пожалуйста полноценный кусок кода на котором видно проблему, если только это не коммерческая тайна. --------------------
that's all |
||||
|
|||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| dim |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 24.12.2002 Репутация: нет Всего: нет |
Ну вот первое, что приходит на ум не проверяя - ты вызываешь Accept() и не проверяешь возвратился он с ошибкой или нет. Если он возвращает ошибку, то вполне логично, что в a будет какая-то фигня. Т.е. проверь не возникает ли ошибка, а вообще хороший стиль особенно если это сервер всегда проверять подобные ситуации.
--------------------
that's all |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
dim если он вернется с ошибкой то у меня на экране не появиться окошко кторое отображает количество пересылаемых байт, оно создается из sol (см. код), нету sol - нет окошка, а оно появляется регулярно.
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| dim |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 24.12.2002 Репутация: нет Всего: нет |
Ну в таком случае вероятно ты где-то теряешь правильный алрес. Попробуй в том месте где ты отображаешь - sol.GetPeerName(...), а в качестве первого параметра - CString&
--------------------
that's all |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
ок попробую, но завтра
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| keisik |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 25.3.2002 Репутация: нет Всего: нет |
Вот такая штука вроде работает:
Здесь CSock производный от CAsyncSocket, а GetAcceptedPeer выглядит так:
--------------------
...None of that can stop us now,we will make it through somehow... |
||||
|
|||||
| dim |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 24.12.2002 Репутация: нет Всего: нет |
keisik Зачем так сложно, если во-первых работает inet_ntoa(), во-вторых getpeername()? Кроме того не понятно зачем вызывается gethostbyaddr(), что может привести к лишним накладным расходам.
--------------------
that's all |
|||
|
||||
| keisik |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 25.3.2002 Репутация: нет Всего: нет |
Я и не говорю, что это супероптимизированный вариант
Хотя, если нужен только АйПишник, то gethostbyaddr просто выкидывается. А по поводу накладных расходов - мне кажется, что лишний вызов GetPeerName не сильно от этого отличается. Ведь насколько я понимаю, всё равно эта инфа запрашивается, только разными способами? --------------------
...None of that can stop us now,we will make it through somehow... |
|||
|
||||
| dim |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 24.12.2002 Репутация: нет Всего: нет |
Вот тут ты сильно ошибаешься, поскольку для того чтобы получить IP нам ничего не надо - он сам приходит к нам уже в пакете - остаеся его только вытащить, а вот получение имени это лишнее обращение к системе имен (как правило DNS), что довольно накладно в обстоятельставх не требующих этих излишеств. --------------------
that's all |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
я что не делаю мне все время возвращает 204.204.204.204
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
Step ты бы структурку обнулил и посморел б результат...
-------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
мужики все получилось, просто я для асепта указывал объект сокета созданный в конструкторе, а надо было создавать в обрачеке он асепт, все получилось.
Все выражаю огромную благадарность. -------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Гость_Yorik |
|
|||
|
Unregistered |
Мне как раз это и было нужно
Спасибо. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |