Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 19287|Yanıt: 1

[Kaynak] [Gerçek savaş] UDP System.Net.Sockets.SocketException

[Bağlantıyı kopyala]
Yayınlandı 9.03.2017 10:16:26 | | |
System.Net.Sockets.SocketException (0x80004005): Uzak ana bilgisayar, mevcut bir bağlantıyı kapatmaya zorladı.   System.Net.Sockets.Socket.ReceiveFrom(Bayt[] b içinde



UDP iletişimi sırasında, try... catch ifadesi veri kabul ederken her zaman bir hata alır:
System.Net.Sockets.SocketException (0x80004005): Uzak ana bilgisayar, mevcut bir bağlantıyı kapatmaya zorladı.
En aptalca çözüm, yakalama ifadesinde hiçbir şey yapmamak ve dinleme portu fonksiyonunun çalışmaya devam etmesine izin vermekti. Ama bu uzun vadeli bir çözüm değil ve uzun süre internette arama yaptım ve Microsoft'un açıklamasını buldum.


Microsoft'un açıklaması: http://support.microsoft.com/kb/263823

Çözüm:








Önceki:Başarıyla bir UDP deliği gerçekleştirildi [Yeniden Baskı]
Önümüzdeki:Javascrip{filter}t window.print() print style ve content ayarlar
 Ev sahibi| Yayınlandı 9.03.2017 10:17:54 |
Nesne başlatıldıktan sonra, özellikleri aşağıdaki şekilde ayarlayın:
                    uint IOC_IN = 0x80000000;
                    uint IOC_VENDOR = 0x18000000;
                    uint SIO_UDP_CONNRESET = IOC_IN | IOC_VENDOR | 12;
//uc为接收数据所使用的UdpClient,不同程序自己手改
            UC. Client.IOControl((int)SIO_UDP_CONNRESET, new byte[] {Convert.ToByte(false)}, null);

Socket.IOControl yöntemi (IOControlCode, byte[], byte[])
Soket için düşük seviyeli çalışma modunu ayarlamak için kontrol kodunu belirtmek üzere IOControlCode kullanın.
parametre
ioControlCode
Gerçekleştirilecek eylemin kontrol kodunu belirten bir IOControlCode değeri.
optionInValue
İşlemin gerektirdiği giriş verilerini içeren Bayt tipinde bir dizi.
optionOutValue
İşlem tarafından döndürülen çıktı verilerini içeren Bayt tipli bir dizi.
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com