Estoy utilizando la clase toma de .Net y estoy usando el siguiente código:¿Por qué .Net Socket.Disconnect toma dos minutos?
socket.Shutdown(SocketShutdown.Both);
socket.Disconnect(true);
esto, entonces los bloques de exactamente dos minutos. He especificado verdadero porque voy a reutilizar el socket inmediatamente y restablecer la conexión. Si tengo la llamada de apagado allí o no, bloquea durante dos minutos. Lo único que puedo hacer es pasar falso para desconectarme. Pero quiero reutilizar el socket.
¿Alguna idea?
ACTUALIZACIÓN:
He leído los códigos. He configurado la opción DontLinger. No ayuda.
ACTUALIZACIÓN 2:
He añadido una traza de red según la petición:
Traza 1: Uso de la opción DontLinger
System.Net.Sockets Verbose: 0 : [4668] Socket#5009246::Socket(InterNetwork#2)
System.Net.Sockets Verbose: 0 : [4668] Exiting Socket#5009246::Socket()
System.Net.Sockets Verbose: 0 : [4668] Socket#5009246::Connect(eee:nnnn#-2063562120)
System.Net.Sockets Information: 0 : [4668] Socket#5009246 - Created connection from aaa.bbb.ccc.ddd.eee:nnnnn to www.xxx.yyy.zzz.:mmmm.
System.Net.Sockets Verbose: 0 : [4668] Exiting Socket#5009246::Connect()
System.Net.Sockets Verbose: 0 : [4668] Socket#5009246::Disconnect()
System.Net.Sockets Verbose: 0 : [4668] Exiting Socket#5009246::Disconnect()
Traza 2: Usando el apagado (SocketShutdown. Ambos);
System.Net.Sockets Verbose: 0 : [0300] Socket#5009246::Socket(InterNetwork#2)
System.Net.Sockets Verbose: 0 : [0300] Exiting Socket#5009246::Socket()
System.Net.Sockets Verbose: 0 : [0300] Socket#5009246::Connect(ddd:eeeee#-2063562120)
System.Net.Sockets Information: 0 : [0300] Socket#5009246 - Created connection from aaa.bbb.ccc.ddd:eeee to www.xxx.yyyy.zzzz:nnnnn.
System.Net.Sockets Verbose: 0 : [0300] Exiting Socket#5009246::Connect()
System.Net.Sockets Verbose: 0 : [0300] Socket#5009246::Shutdown(Both#2)
System.Net.Sockets Verbose: 0 : [0300] Exiting Socket#5009246::Shutdown()
System.Net.Sockets Verbose: 0 : [0300] Socket#5009246::Disconnect()
System.Net.Sockets Verbose: 0 : [0300] Exiting Socket#5009246::Disconnect()
¿Podemos ver el código que lo rodea? podría ser que haya algo más que cause la demora, como un ciclo o una llamada de bloqueo. –