http://www.codeproject.com/Articles/...nce-Socket-Cod
burada socketasynceventargs var hocam, socket değişimlerinde bu event tetikleniyor, bu eventi kullanarak kapatılan socketi açabilirsin
ayrıca hatanın ne olduğunu öğrenmen lazım. bunun için try catch de exception mesajını yazdırırsan bir yere detayı öğrenebilirsin.
bu arada her exception verdiğinde soketi tekrar açtırmaya çalışıyorsan yine hata verir. Çünkü açık olan şeyi açamazsın tekrar. O yüzden soketi açmadan önce state ine bak, açık değilse açtır. Büyük ihtimal sıkıntı burdan kaynaklanıyor. Yani başka bir şey yüzünden exception fırlatılıyor ve sen soket açık olduğu halde açmaya çalışıyorsun. O yüzden exceptionları da detaylandırabilirsin.