• 23-05-2015, 16:02:21
    #1
    Merhabalar,

    Yaptığım bir projede belirlediğim porttan veri geliyor, bunu veritabanına atıyorum. Ancak ağdan mıdır delaydan mıdır bilmem, bazı yerlerde 5 dakikada bir soket time outa düşerken yada herhangi başka bir hatadan kapanırken, bazı yerlerde ölümüne çalışıyor..

    Ben de fonksiyon catch e düştüğünde, soketi tekrar açtırıyorum. Burada da sorun oluyor, 1 açıyor 5 açıyor 6. da açmadan kalıyor öyle. Debug etme şansım yok ne zaman olacağı belli değil, sadece hataları alıyorum.

    Fikir danışmak istiyorum sadece, nasıl birşey yapmalıyım ki tcp soketin kapandığı an tekrar başlatsam bile sorun yaşamasın ya da uygulamayı mı restart ettirmeliyim her catch'e düştüğünde?
  • 23-05-2015, 16:39:42
    #2
    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.
  • 23-05-2015, 19:48:02
    #3
    http://snfaruk.blogspot.com.tr/2015/...le-client.html
    İşinize yararsa kendi yazdığım bir socket yapısı var inceleyebilirsiniz.
  • 06-07-2015, 09:54:27
    #4
    ertan2002 adlı üyeden alıntı: mesajı görüntüle
    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.
    Tekrar bu sorun baş gösterdi, exceptionları hep logluyorum tek uygulamada 7 port dinleyip veritabanına aktarıyorum, aldığım hatanın %90ı port remotely closed oluyor, bir kaç yöntem denedim tekrar dinlemeye başlamıyor bunu test de edemiyorum doğru çalışıp çalışmadığını ne zaman exceptiona düşeceği belli olmuyor meretin. O yüzden exceptiona logu alıp application.restart ı çaktım umarım düzelir.
  • 06-07-2015, 12:55:21
    #5
    SignalR konusunu araştırıp öğrenmeye ve bunu kullanmaya çalışmanızı tavsiye ederim.. Bir çok şey sizin yerinize yapılıyor ve bu tarz sorunlara çok rahat çözümler geliştirebiliyorsunuz.