Hola a todos. Primero de todo no os riáis mucho de mi que acabo de empezar con VB y solo estoy haciendo pruebas. (Que no tengo ni idea vamos!)

Estoy intentando hacer una aplicación cliente/servidor pero tengo un problema de noob noob... :(

La aplicación ya se conecta pero solo en local. No se como decirle un DNS o otra ip...

Ese Loopback significa como 127.0.0.1 pero no se como cambiarlo para que me coja una ip o un dns... :(
port = 1234
localAddr = IPAddress.Loopback

server = New TcpListener(localAddr, port)
Me respondo yo mismo ya que nadie me contesta

con Parse("127.0.0.1") en vez de Loopback también me funciona, pero a la que intento darle otra ip o un dns, no se conecta... No entiendo porque...
[PT-BR]
Já tentou verificar se as portas de conexão estão abertas? Faça um teste nelas antes.
Caso estejam, tente assim:

Crie uma variavel global:
Public T as TcpClient
Crie uma sub assim:
Public sub CON(IP as string, PORT as integer)

try

If T IsNot Nothing Then
                    T.Close()
                    T = Nothing
                End If

Try
               T = New TcpClient

                T.Connect(IP, PORT)
                   Catch ex As Exception

            End Try

catch ex as exception
end try

end sub
Crie uma sub de verificação de conexão:
Public Function Statsconnected() As Boolean

        Try

            If T.Client.Connected = True Then
                Return True
            Else
                Return False

            End If

        Catch ex As Exception
            'Return False
        End Try
    End Function
Isso tudo acima estou dando exemplo em uma classe separada.

Agora para chamar, use um timer no seu form principal que fará sempre a verificação:
Private Sub Timer1_Tick_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

        If Cl.Statconnected = False Then
            Cl.CON("IP que está testando", "porta que está testando")
        End If

    End Sub
E crie uma variável global nele assim:
Public WithEvents Cl As New SocketClient
Testa ai e veja se funciona bem.

Uma alternativa é procurar por sources já prontas em que você possa estudar o código delas.
if Café = 4 letras and Café = 2 sílabas Then
 Café = 42
wormsystem escribió:[PT-BR]
Já tentou verificar se as portas de conexão estão abertas? Faça um teste nelas antes.
Caso estejam, tente assim:

Crie uma variavel global:
Public T as TcpClient
Crie uma sub assim:
Public sub CON(IP as string, PORT as integer)

try

If T IsNot Nothing Then
                    T.Close()
                    T = Nothing
                End If

Try
               T = New TcpClient

                T.Connect(IP, PORT)
                   Catch ex As Exception

            End Try

catch ex as exception
end try

end sub
Crie uma sub de verificação de conexão:
Public Function Statsconnected() As Boolean

        Try

            If T.Client.Connected = True Then
                Return True
            Else
                Return False

            End If

        Catch ex As Exception
            'Return False
        End Try
    End Function
Isso tudo acima estou dando exemplo em uma classe separada.

Agora para chamar, use um timer no seu form principal que fará sempre a verificação:
Private Sub Timer1_Tick_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

        If Cl.Statconnected = False Then
            Cl.CON("IP que está testando", "porta que está testando")
        End If

    End Sub
E crie uma variável global nele assim:
Public WithEvents Cl As New SocketClient
Testa ai e veja se funciona bem.

Uma alternativa é procurar por sources já prontas em que você possa estudar o código delas.

Gracias Wormsystem! Pues si era problema del puerto, que me despiste y el cliente tenia un puerto y el server otro

Lo que puedo conectarme solo con IP internas de la red, a la que pruebo con externa no funciona... Y con DNS tampoco... He abierto el puerto correspondiente con su IP y en el caso del DNS con el no-ip activado y tampoco...
Responder

Volver a “VB/.NET”