WinSock recvfrom() engellemeyi veya zaman aşımına uğramış yerine WSAECONNRESET şimdi döndürür.

Makale çevirileri Makale çevirileri
Makale numarası: 263823 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Belirtiler

Bir Kullanıcı Datagram Protokolü (UDP) programı, Windows 2000 ' de çalışmayabilir ve WSAECONNRESET yanıt verebilir.

Neden

Bir "ICMP bağlantı ulaşılamaz" yanıtı ve işlev seçinsento işlevinin sonuçları'nı kullanarak bir veri birimi gönderme readfds için ayarlanmışsa, program 1 döndürür ve sonraki recvfrom işlev çağrısı WSAECONNRESET (10054) hata yanıtta çalışmaz. Microsoft Windows NT 4. 0 ', bu durum bloğu veya zaman aşımına <a2>seçin</a2> işlevini neden olur.

Çözüm

Bu sorunu gidermek için, en son Windows 2000 hizmet paketini edinin. Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
260910En son Windows 2000 hizmet paketi nasıl elde edilir
IOCTL "SIO_UDP_CONNRESET" adlı yeni BIR yuva sunulan Windows 2000'de. Bu IOCTL kullanıldığında program özellikle özgün Windows NT 4.0 edinmek için Windows 2000 için yazılmış gerekir davranışı. Windows NT 4.0, Microsoft Windows 95 ve Microsoft Windows 98, bu yeni IOCTL desteği vardır. Başvurulan düzeltmeyi gerekir uygulamanızı yeniden yazma ek olarak, bu makalenin daha aşağı.

Aşağıdaki kod parçacığını Wsaıoctl SIO_UDP_CONNRESET ile özgün Windows NT 4.0 davranışı'nı edinmek üzere denetim kodunu aramak için kullanılan bir teknik gösterilmiştir.
DWORDdwBytesReturned = 0;
BOOLbNewBehavior = FALSE;
DWORDstatus;

// disable  new behavior using
// IOCTL: SIO_UDP_CONNRESET
status = WSAIoctl(sd, SIO_UDP_CONNRESET,
&bNewBehavior, sizeof(bNewBehavior),
                   NULL, 0, &dwBytesReturned,
                   NULL, NULL);

if (SOCKET_ERROR == status)
{
DWORD dwErr = WSAGetLastError();
if (WSAEWOULDBLOCK == dwErr)
{
// nothing to do
return(FALSE);
}
else
{
printf("WSAIoctl(SIO_UDP_CONNRESET) Error: %d\n", dwErr);
return(FALSE);
}
}
				
bu kod derleme yapabilmek için <a0></a0>, size SIO_UDP_CONNRESET tanımını içeren en son mswsock.h olan veya aşağıda tanımı, doğrudan koda eklemek için gereken.
// MS Transport Provider IOCTL to control
// reporting PORT_UNREACHABLE messages
// on UDP sockets via recv/WSARecv/etc.
// Path TRUE in input buffer to enable (default if supported),
// FALSE to disable.
#defineSIO_UDP_CONNRESET_WSAIOW(IOC_VENDOR,12)
				
sürece, program yeni SIO_UDP_CONNRESET IOCTL kullanmak için yeniden Not bu makalede anlatılan düzeltmeyi sorunu çözer.

Bu kod derleme için en son Platform SDK'in bilgisayarınızda yüklü olması gereklidir. Bu aşağıdaki MSDN Web sitesinden edinilebilir:
http://msdn.microsoft.com

Durum

Microsoft, bu makalenin başında listelenen Microsoft ürünlerinde bir sorun olduğunu onaylamıştır. Bu sorun ilk olarak Windows 2000 Service Pack 2'de giderilmiştir.

Daha fazla bilgi

Windows 2000'i ve Windows 2000 düzeltmelerini aynı anda yükleme hakkında daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
249149Microsoft Windows 2000 ve Windows 2000 Düzeltmelerini Yükleme

Özellikler

Makale numarası: 263823 - Last Review: 21 Şubat 2007 Çarşamba - Gözden geçirme: 4.3
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
Anahtar Kelimeler: 
kbmt kbhotfixserver kbqfe kbbug kbfix kbwin2000presp2fix KB263823 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:263823

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com