Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 19287|Resposta: 1

[Fonte] [Combate real] UDP System.Net.Sockets.SocketException

[Copiar link]
Publicado em 09/03/2017 10:16:26 | | |
System.Net.Sockets.SocketException (0x80004005): O host remoto forçou o fechamento de uma conexão existente.   Em System.Net.Sockets.Socket.ReceiveFrom(Byte[] b



Durante a comunicação UDP, usando try... A instrução catch sempre recebe um erro ao aceitar dados:
System.Net.Sockets.SocketException (0x80004005): O host remoto forçou o fechamento de uma conexão existente.
A solução mais desde o início foi não fazer nada na instrução catch e deixar a função de porta de escuta continuar rodando. Mas isso não é uma solução a longo prazo, e procurei muito tempo online e encontrei a explicação da Microsoft.


Explicação da Microsoft: http://support.microsoft.com/kb/263823

Solução:








Anterior:Realizada com sucesso um buraco UDP [Reimpressão]
Próximo:Javascrip{filter}t window.print() define o estilo de impressão e o conteúdo
 Senhorio| Publicado em 09/03/2017 10:17:54 |
Após inicializar o objeto, defina as propriedades da seguinte forma:
                    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, novo byte[] {Convert.ToByte(false)}, null);

Método Socket.IOControl (IOControlCode, byte[], byte[])
Use o IOControlCode para especificar o código de controle para definir um modo operacional de baixo nível para o soquete.
parâmetro
ioControlCode
Um valor IOControlCode que especifica o código de controle para a ação a ser executada.
optionInValue
Um array do tipo Byte contendo os dados de entrada exigidos pela operação.
optionOutValue
Um array do tipo Byte que contém os dados de saída retornados pela operação.
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com