Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Сокеты Добавлено: 23.08.05 00:36  

Автор вопроса:  Neco | Web-сайт: neco.pisem.net | ICQ: 247906854 
Мучаюсь тут с сокетами на дотНэте.
Проблема в том, что у класса Sockect нет нормального метода Close. Его ненормальность проявляется в том, что при этом расформировывается сам объект и его надо создавать заново. Вначале у меня главный сокет, объявленный глобально, создавался при инициализации и уничтожать его я не думал. Однако потом выяснилось, что нет команды UnBind и чтобы освободить порт надо уничтожать весь сокет командой Close. Потом появилась проблема проверки существования объекта - проверять каждый раз if sckComm is nothing честно говоря влом. Вслепую создавать - будут утечки памяти. Решил заменить глобальную переменную на локальную - опять не то - узнать кем забинден порт (моим же классом, либо же сторонней прогой) невозможно без создания разных тупых булевых переменных.
В общем, ощущение, что как-то я не так работаю с этим классом, хотя я уже создавал класс на шестом С++ и там всё работало нормально и без утечек. Здесь вроде должно быть попроще, а на деле только хуже.
Есть нормальные примеры работы асинхронных сокетов без использования потоков?

Ответить

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

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



ICQ: 271202919 

Вопросов: 56
Ответов: 837
 Профиль | | #1 Добавлено: 23.08.05 08:06
Иди отдохни пивка попей с друзьями. Мб поможет так всегда бывает паришься, паришься, а потом все разом решается.

P.S. это не читай, но разом у тя не получиться ;-)))

Ответить

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



Вопросов: 0
Ответов: 1876


 Профиль | | #2 Добавлено: 23.08.05 10:12
А ты не думал над тем, чтобы создать простейшую обёртку вокруг класса socket, которая бы делала всё, что нужно?

Ответить

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



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #3
Добавлено: 24.08.05 20:53
>P.S. это не читай, но разом у тя не получиться
Это типа потому что мордой не вышел?

>А ты не думал над тем, чтобы создать простейшую обёртку вокруг класса socket, которая бы делала всё, что нужно?
Имхо, тут обычным сабклассингом не поможешь, да и не в этом дело. Я же говорю, что свой винсок на С++ я уже писал и на первый взгляд класс Socket предоставляет почти такой интерфейс как и виндовая dll, однако по ходу начали вылезать такие вот тонкости и всё испортили.

Хотя я уже нашёл статью о сборке мусора на дотНэте и проблему решил.

Ответить

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



Вопросов: 0
Ответов: 1876


 Профиль | | #4 Добавлено: 25.08.05 02:36
А нафига сабклассинг-то?
Внутри твоего класса private переменная типа socket, а методы твоего класса делают необходимую подготовку.
А то и просто - inherits socket...

Ответить

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



ICQ: 271202919 

Вопросов: 56
Ответов: 837
 Профиль | | #5 Добавлено: 25.08.05 07:53
Это типа потому что мордой не вышел?


Я твоего лица не видел, а уж тем более морды;-)))

Ответить

Страница: 1 |

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



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