2010-12-10 11 views
7

Im Birkaç konu her işleme ürün varCan Konular Aynı İstemci Soketini Paylaşabilir mi? TClientSocket veya Indy TIdTCPClient kullanılarak

(proje bağlı olarak) ve bazen bağlı istemci soket üzerinden veri göndermek gerekir.

  • mümkün mü ...

    Temelde benim sorum (Veri Okuma soket işleme parçacığı kullanılan DEĞİLDİR oluştururlar)?

  • "güvenli" mi?

ya da

  • bir istemci parçacığı başına yuva veya
  • olmalıdır tür uzayları/kritik bölümleri

Delphi-7 indy-9

+1

BTW, Indy 9.x, –

+0

yeh olduğunu bildiğim, (kinda delphi 7 de sanırım) yapacağı şeylerin "listesi";) –

cevap

4

Çok evreli bazı Aynı sokete okuyabilir ve yazabilir. Her zaman accept'dan beri, bekleyen bağlantıların sırasındaki ilk bağlantıyı çıkaracak, aynı yuva özelliklerine sahip yeni bir soket oluşturacak ve bu soket için yeni bir dosya tanımlayıcısı tahsis edecektir.

Her bağlantıda yalnızca bir konu.

Kabul edilen bir bağlantıda birden çok yazma/okuma yapıp yapamayacağınızı sorarsanız, kilitleme özelliklerine ve dolayısıyla parazitli faydaların kaybolmasına ihtiyacınız olacaktır. Uzun bir süreci işemek ve sonucu sokete yazmak istiyorsanız, doğru sırayla yazmak için senkronizasyonu kullanın.

+0

Bunun için teşekkürler, ayrıca http: // tangentsoft.net/wskfaq/intermediate.html#threadsafety –

+0

Ayrıca, 'accept' thread-safe'dir :) –

İlgili konular