Не может повторно связать сокет ссуществующими IP / Port Комбинация

Привет, я пытаюсь найти способ " отвязать " гнездо из определенной комбинации IP/Port. Мой псевдокод выглядит так:

ClassA a = new ClassA(); //(class A  instantiates socket and binds it to 127.0.0.1:4567) 
//do something 
//...much later, a has been garbage-collected away.
ClassA aa = new ClassA(); //crash here.

На данный момент, .Net сообщает мне, что я уже получил сокет, привязанный к 127.0.0.1:4567, который технически верно. Но независимо от того, какой код я положил в ClassA деструктор, или неважно, какие функции я на вызов socket (я пробовал .Close() и .Disconnect(true)), сокет остается гордостью привязан к адресу 127.0.0.1:4567. Что мне сделать, чтобы быть в состоянии ООН " привязать " гнездо?


EDIT: я не полагаясь исключительно на вывоз мусора (хотя я старался, чтобы подход). Я пыталась дозвониться a.Close() или a.Disconnect() и только затем создание экземпляра aa; это не решит проблему.


EDIT: я также попытался реализует интерфейс IDisposable, но код не попал туда без моего вызова метода (что было равносильно предыдущие попытки, в качестве метода был бы просто попробовать .Close и .Disconnect). Позвольте мне попробовать позвонить .Dispose напрямую и получить обратно к вам.


EDIT (много правок, извинения): Реализует интерфейс IDisposable, и вызов a.Dispose (), где 'a' выйдет из области видимости не работает - мой Распоряжаться реализация по-прежнему имеет вызов либо .Close или .Disconnect(true) (или .Shutdown(Оба)), но ни один из тех, привязку к сокету.

Любая помощь будет признателен!

Найдено 5 ответов:

Can't Re-bind a socket to an existing IP/Port Combination

http://stackoverflow.com/questions/48356/cant-re-bind-a-socket-to-an-existing-ip-port-combination

Посмотреть решение →