CONECTAR E DESCONECTAR SOCKET

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

CONECTAR E DESCONECTAR SOCKET

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#479523 - 08/02/2018 20:31:15

HELIO COSTA
BELO HORIZONTE
Cadast. em:Fevereiro/2005


Boa  noite,

VB.net 2013

Estou usando estes comandos para conectar e desconectar um socket.

Public Sub connect(ByVal host As String)
        socket.Connect(host, 5000)
    End Sub

Public Sub disconnect()
              socket.Disconnect(True)
    End Sub

Funciona ok, mas se for fazer outra conexão ele dá 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."

Helio

Resposta escolhida #479525 - 08/02/2018 23:25:14

LVFIOROT
SERRA
Cadast. em:Março/2012


vc precisa criar um array de sockets e dar um listem novamente na porta

exememplo
https://code.msdn.microsoft.com/windowsdesktop/Simple-Chat-Application-3f7f4ec5



#479528 - 09/02/2018 10:40:51

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


Membro da equipe
O que você está tentando fazer? Sockets não são muito fáceis de controlar e são altamente dependentes de estrutura de rede. Talvez hava uma maneira mais simples...

_______________________________________________________________________
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!


#479542 - 09/02/2018 14:24:24

HELIO COSTA
BELO HORIZONTE
Cadast. em:Fevereiro/2005


KERPLUNK, Faço a leitura de equipamentos pela rede, como controladora, antena de transponder, etc, e tenho que abrir e fechar o socktet constantemente.
Utilizo assim também, só que fica mais lento e código maior:
        Dim tcpClient As New TcpClient() ' Create a client that will connect to a server listening on the contosoServer computer at port 11000.
       tcpClient.Connect(CIP, CCanal)
        Dim networkStream As NetworkStream = tcpClient.GetStream() ' Get the stream used to read the message sent by the server.
        networkStream.ReadTimeout = 300  ' Set a 10 millisecond timeout for reading.
        Try
        DadosIP = ""
        Dim TamnahoIP As Integer = 0
        TamnahoIP = Len(DadosIP)
        While TamnahoIP <> 257
                 Dim bytes1(tcpClient.ReceiveBufferSize) As Byte
                networkStream.Read(bytes1, 0, CBuffer)
                DadosIP = Encoding.ASCII.GetString(bytes1) 'Convert the server's message into a string and display it.
               TamnahoIP = Len(DadosIP)              
               lblStatus.Text = "Status:"
                networkStream.Close()
                tcpClient.Close()
                Exit While
            Catch ex As Exception
                lblStatus.Text = ex.Message & "  -  chamando ip..."
            End Try
        End While

Helio

#479543 - 09/02/2018 14:29:10

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


Membro da equipe
Hmmm, aí não tem jeito mesmo, vai ter que ser por socket, mas como o LVFIOROT acima falou, você vai ter que usar um array ou List<T> de sockets.

_______________________________________________________________________
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!


#479548 - 09/02/2018 15:51:17

HELIO COSTA
BELO HORIZONTE
Cadast. em:Fevereiro/2005


Obrigado a todos.

Helio

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


Tópico encerrado, respostas não sao permitidas
Encerrado por HELIO COSTA em 09/02/2018 15:51:32