elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Socket - Desconectando correctamente !!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Socket - Desconectando correctamente !!  (Leído 1,337 veces)
TrashAmbishion


Desconectado Desconectado

Mensajes: 756


Ver Perfil
Socket - Desconectando correctamente !!
« en: 23 Septiembre 2016, 20:17 pm »

Código
  1. Public Class Form1
  2.    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  3.  
  4.    End Sub
  5.  
  6.    Dim clientSocket As Socket
  7.    Dim byteData(1023) As Byte
  8.  
  9.    Private Sub OnConnect(ByVal ar As IAsyncResult)
  10.        clientSocket.EndConnect(ar)
  11.        clientSocket.BeginReceive(byteData, 0, byteData.Length, SocketFlags.None, New AsyncCallback(AddressOf OnRecieve), clientSocket)
  12.    End Sub
  13.  
  14.    Private Sub OnDisconnect(ByVal ar As IAsyncResult)
  15.        Dim client As Socket = ar.AsyncState
  16.        client.EndDisconnect(ar)
  17.  
  18.        clientSocket.Close()
  19.        clientSocket = Nothing
  20.    End Sub
  21.  
  22.    Private Sub OnRecieve(ByVal ar As IAsyncResult)
  23.  
  24.        Dim client As Socket = ar.AsyncState
  25.        client.EndReceive(ar)
  26.        Dim bytesRec As Byte() = byteData
  27.        Dim message As String = System.Text.Encoding.ASCII.GetString(bytesRec)
  28.        Read(message)
  29.        clientSocket.BeginReceive(byteData, 0, byteData.Length, SocketFlags.None, New AsyncCallback(AddressOf OnRecieve), clientSocket)
  30.  
  31.    End Sub
  32.  
  33.    Delegate Sub _Read(ByVal msg As String)
  34.    Private Sub Read(ByVal msg As String)
  35.        If InvokeRequired Then
  36.            Invoke(New _Read(AddressOf Read), msg)
  37.            Exit Sub
  38.        End If
  39.        RichTextBox1.Text &= msg
  40.    End Sub
  41.  
  42.  
  43.    Private Sub btnConnect_Click(sender As Object, e As EventArgs) Handles btnConnect.Click
  44.        clientSocket = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
  45.        Dim ipAddress As IPAddress = IPAddress.Parse("127.0.0.1")
  46.        Dim ipEndPoint As IPEndPoint = New IPEndPoint(ipAddress, 8800)
  47.        clientSocket.BeginConnect(ipEndPoint, New AsyncCallback(AddressOf OnConnect), Nothing)
  48.    End Sub
  49.  
  50.    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  51.        clientSocket.BeginDisconnect(False, New AsyncCallback(AddressOf OnDisconnect), clientSocket)
  52.    End Sub
  53. End Class

Cada vez que doy en el Boton desconectar me salta una exepcion en OnReceive de que el objeto esta Dispose, alguien me puede explicar porque es que se dispara ese evento.

Lo otro es que en el lado del servidor no se entera de que el socket fue cerrado, para que el se percatara de esto tendria que hacer una especie de thread cada cierto tiempo verificando si el socket esta vivo ??

Como explican aqui

http://stackoverflow.com/questions/722240/instantly-detect-client-disconnection-from-server-socket

Salu2

Lo que busco es detectar cuando un cliente se conecta y desconecta tanto para el cliente como el servidor.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ver subtitulos correctamente
Multimedia
hectorcithoek 2 1,916 Último mensaje 27 Junio 2006, 02:08 am
por hectorcithoek
Multithread Socket (Thread per Socket)not Complete « 1 2 »
Programación Visual Basic
ntaryl 12 8,832 Último mensaje 10 Febrero 2012, 18:42 pm
por ntaryl
PC solo arranca desconectando y conectando fuente con botón
Hardware
WifliX 2 1,712 Último mensaje 27 Febrero 2015, 16:15 pm
por WifliX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines