Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Проблемы с Socket API Добавлено: 28.01.04 11:17  

Автор вопроса:  LamerOnLine | ICQ: 334781088 

Пишу свой контрол для кучата, надоело пользоваться винсоком. Все вроде нормально работает, за исключением одного глюка: когда пытаюсь повесить его на тот же порт вместе с чатом - естественно, не работает. Пытаюсь через ReUseAddress:

Private Const SO_REUSEADDR = &H4

Private Const SOL_SOCKET = &HFFFF

............

............

sock = socket(2, 2, 17)

Dim OpVal As Integer

OpVal = 1

RetVal = setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, OpVal, Len(OpVal))

возвращаемое значение говорит о том, что произошла ошибка.

Функция WSAGetLastError возвращает код ошибки - ноль, т.е. ошибки не было. Но порт не биндуется. В чем тут загвоздка?

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #1 Добавлено: 28.01.04 15:24

Ну, неужто никто не шарит??? Ведь полно же умников!

Ответить

Номер ответа: 2
Автор ответа:
 DaSharm



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #2
Добавлено: 28.01.04 16:46

Сокет у тя UDP, какие мля проблемы, ты хоть доганяешь что ты делаешь?

Эсли бы ТСР то здесь замуты, а УДП это и[sensored]у понятное дело.

>>пытаюсь повесить его на тот же порт вместе с чатом

Что повесить?Ты что, хочешь забиндить порт для передачи и приема?Ты знаешь как УДП работает?

Ответить

Номер ответа: 3
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #3 Добавлено: 28.01.04 16:53

Мля, ты меня совсем уж за идиота не держи.

Да, я знаю что такое UDP и как он работает. Я сам писал пакеты UDP под WinPCap, знаю назначение всех полей пакета и методику расчета CRC.

Если не ломает - перечитай вопрос. Если не понятно - попробуй стандартным виндосовским сокетом повесить два UDP-приложения на прием на один и тот же порт (без API). Вот когда попробуешь - тогда так решительно и говори...

Ответить

Номер ответа: 4
Автор ответа:
 DaSharm



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #4
Добавлено: 28.01.04 18:12

Зачем же вешать на один порт два сокета?Кажись так можно только в пределах одного приложения, эсли порт занят другим, то ничего не выйдет.

Ответить

Номер ответа: 5
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #5 Добавлено: 29.01.04 08:43

А вот именно это я и пытаюсь реализовать! Знаю как, а что-то не катит...

Есть контрол, dsSocket, который позволяет это делать, использовать флаг ReUseAddress. Я уже мылил кому-то снифферы для qChat'a собственной разработки, где это было реализовано. Но не на API. Я знаю API, на которых это сделано, есть их описание, вроде все правильно делаю, а получается то что я говорил выше.

Ответить

Номер ответа: 6
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #6 Добавлено: 29.01.04 12:17

Все, проблему решил...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам