ERRO SOCKET

 Tópico anterior Próximo tópico Novo tópico

ERRO SOCKET

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#480124 - 13/03/2018 14:32:46

HELIO COSTA
BELO HORIZONTE
Cadast. em:Fevereiro/2005


Boa tarde.
Utilizo o VB 2013
Tenho a conexão da seguinte forma:

Public Sub connectC(host As String)
        socket.Connect(host, 500)
End Sub

... faço a leitura de alguma porta...

Public Sub disconnectC()
        socket.Send(System.Text.Encoding.ASCII.GetBytes("quit" & vbLf))
        socket.Disconnect(True)
End Sub

Funciona certinho. Mas quando desconecto e vou conectar novamente, apresenta um erro

Após a desconexão do soquete, você só poderá reconectar novamente de maneira assíncrona, e apenas em um EndPoint diferente. BeginConnect deve ser chamado em um thread que não sairá enquanto a operação não for concluída

Poderia me mostrar onde aplicar um thread?


Helio

#480125 - 13/03/2018 14:57:26

JABA
CABO FRIO
Cadast. em:Agosto/2005


Quando você desconecta é preciso ficar escutando (listening) a porta novamente para reconectar.

_______________________________________________________________________________________________

Se a alma ou espírito são imateriais, como eles fazem para se localizarem quando o corpo está em movimento?



#480128 - 13/03/2018 17:15:56

HELIO COSTA
BELO HORIZONTE
Cadast. em:Fevereiro/2005


Não. Só quando abro a conexão para leitura de alguma porta.
Não é para chat. Para leitura status de porta.
Exemplo.
Abro a conexão, verifico estado de uma porta específica, fecho a porta. Faço algum processo. abro novamente, verifico e outro processo. e assim sucessivamente.

Helio

#480129 - 13/03/2018 17:59:08

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
O que é "socket"? Tipo, como você está declarando isso? Não seria melhor usar blocos "using"?

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#480130 - 13/03/2018 18:01:22

HELIO COSTA
BELO HORIZONTE
Cadast. em:Fevereiro/2005


    Private lastSensorRead As UInteger = 0
    Private socket As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)


Helio

Resposta escolhida #480160 - 14/03/2018 20:15:37

DS2T
BARRA MANSA
Cadast. em:Novembro/2010


Boa noite.

Existem duas formas de corrigir este erro:

A primeira é utilizar o método Shutdown antes do Disconnect.

A segunda é setar as seguintes opções para o Socket:

SeuSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.DontLinger, True)

Abraços!

"Cansei de frases intelectuais" - Eu mesmo


#480168 - 15/03/2018 09:02:19

HELIO COSTA
BELO HORIZONTE
Cadast. em:Fevereiro/2005


Bom dia .

Obrigado pela ajuda DS2T.

Não funcionou, deu o mesmo erro.

Mais alguma dica?

Helio

 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por HELIO COSTA em 31/03/2018 12:07:09