Foros del Web » Programación para mayores de 30 ;) » .NET »

Socket en visual basic .net

Estas en el tema de Socket en visual basic .net en el foro de .NET en Foros del Web. Código: Imports System.Net Imports System.Net.Sockets Imports System.Diagnostics Public Class Form1 Public tcpClient As New System.Net.Sockets.TcpClient() Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) ...
  #1 (permalink)  
Antiguo 25/11/2005, 13:51
 
Fecha de Ingreso: abril-2002
Mensajes: 36
Antigüedad: 22 años
Puntos: 0
Socket en visual basic .net

Código:
Imports System.Net
Imports System.Net.Sockets
Imports System.Diagnostics

Public Class Form1
    Public tcpClient As New System.Net.Sockets.TcpClient()

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click


        Try
            If tcpClient.GetStream.CanRead = True Then
                Send(msj.Text)
            End If

        Catch ex As Exception
            Debug.WriteLine("Error " & ex.Message)
            Connect("192.168.1.6")
            Send("MI text ")
            Debug.WriteLine("Conectando")
        End Try
        Debug.WriteLine("FIN ")
    End Sub

    Public Sub Connect(ByVal HOST_IP As String)
        tcpClient.Connect(HOST_IP, 45)
    End Sub

    Public Sub Send(ByVal data As String)
        Dim networkStream As NetworkStream = tcpClient.GetStream()
        If networkStream.CanWrite And networkStream.CanRead Then
            Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(data)
            networkStream.Write(sendBytes, 0, sendBytes.Length) 
        Else
            If Not networkStream.CanRead Then
                Debug.WriteLine("cannot not write data to this stream")
                tcpClient.Close()
            Else
                If Not networkStream.CanWrite Then
                    Debug.WriteLine("cannot read data from this stream")
                    tcpClient.Close()
                End If
            End If
        End If
    End Sub
    Public Sub lee()
        ' Read the NetworkStream into a byte buffer.
        Dim bytes(tcpClient.ReceiveBufferSize) As Byte
        NetworkStream.Read(bytes, 0, CInt(tcpClient.ReceiveBufferSize))
        Dim returndata As String = Encoding.ASCII.GetString(bytes, 0, CInt(tcpClient.ReceiveBufferSize))
        recv.Text = "Host dICVE : " + returndata
    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        tcpClient.Close()
    End Sub

    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        lee()
    End Sub
End Class

Este ejemplo funciona perfecto. Button3_Click se conecta; Button4_Click cierra el socket y Button5_Click lee datos recividos.


Ahora el problema es que para leer lo que me dice le server (192.168.1.6) tengo que estar haciendo click en Button5_Click , en cambio con vb6 con dataarrival siempre quedaba activo, cómo puedo dejar siempre activa la escucha desde el socket? gracias
  #2 (permalink)  
Antiguo 03/07/2010, 08:55
 
Fecha de Ingreso: marzo-2010
Mensajes: 5
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Socket en visual basic .net

Simple usa un timer que actualize cada 1 segundo, cuando lo desconectas cerras el timer.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:46.