Ayuda con Socket Asincronos
Publicado por llAudioslavell (1 intervención) el 25/01/2012 18:20:01
Hola a todos de este gran foro...
estoy desarrollando una aplicacion utilizando socket asincronos, la aplicacion es simple .. solo conciste en aceptar peticiones de los clientes de una red Lan, despues ya pienso agregar mas cosas como mensajeria y cosas asi pero ahora solo quiero algo basico para ir entendiendo poco a poco.. estuve siguiendo tuoriales y entendiendo paso a paso:
Servidor:
Dim SocketServer As Socket
Dim SocketClient As Socket
Dim Bytesfrom(10024) As Byte
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
SocketServer = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
Dim ip As IPEndPoint = New IPEndPoint(IPAddress.Any, 1863)
SocketServer.Bind(ip)
SocketServer.Listen(2)
SocketServer.BeginAccept(New AsyncCallback(AddressOf Aceptar), SocketServer)
End Sub
Private Sub Aceptar(ByVal acp As IAsyncResult)
SocketServer = acp.AsyncState
SocketClient = SocketServer.EndAccept(acp)
SocketServer.BeginAccept(New AsyncCallback(AddressOf Aceptar), Nothing)
End Sub
Cliente:
Dim Bytesfrom(10024) As Byte
Dim SocketClient As Socket
Dim IPAddres As IPAddress
Private Sub Conectar(ByVal ar As IAsyncResult)
SocketClient = ar.AsyncState
SocketClient.EndConnect(ar)
End Sub
Private Sub BTN_CONECTAR_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTN_CONECTAR.Click
SocketClient = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
IPAddres = IPAddress.Parse(txt_ip.Text)
Dim PuertoIP As IPEndPoint = New IPEndPoint(IPAddres, 1863)
SocketClient.BeginConnect(PuertoIP, New AsyncCallback(AddressOf Conectar), Nothing)
If SocketClient.Connected = True Then
MsgBox("conectado")
Else
MsgBox("No se logro la conexion")
End If
End Sub
es algo simple .. pero no logro conectar el cliente al servidor.. tuve una idea y agregue esa ultima condicion "If SocketClient.Connected = True Then" y al tratar de conectar pues me va directo al "ELSE" .. nose en donde esta el problema talves ustedes me puedan ayudar en esto.... espero sus aportes ya que esto tambien servira para los que estean intentando crear una aplicacion como esta.. gracias de antemano ^^
salu2 !!
estoy desarrollando una aplicacion utilizando socket asincronos, la aplicacion es simple .. solo conciste en aceptar peticiones de los clientes de una red Lan, despues ya pienso agregar mas cosas como mensajeria y cosas asi pero ahora solo quiero algo basico para ir entendiendo poco a poco.. estuve siguiendo tuoriales y entendiendo paso a paso:
Servidor:
Dim SocketServer As Socket
Dim SocketClient As Socket
Dim Bytesfrom(10024) As Byte
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
SocketServer = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
Dim ip As IPEndPoint = New IPEndPoint(IPAddress.Any, 1863)
SocketServer.Bind(ip)
SocketServer.Listen(2)
SocketServer.BeginAccept(New AsyncCallback(AddressOf Aceptar), SocketServer)
End Sub
Private Sub Aceptar(ByVal acp As IAsyncResult)
SocketServer = acp.AsyncState
SocketClient = SocketServer.EndAccept(acp)
SocketServer.BeginAccept(New AsyncCallback(AddressOf Aceptar), Nothing)
End Sub
Cliente:
Dim Bytesfrom(10024) As Byte
Dim SocketClient As Socket
Dim IPAddres As IPAddress
Private Sub Conectar(ByVal ar As IAsyncResult)
SocketClient = ar.AsyncState
SocketClient.EndConnect(ar)
End Sub
Private Sub BTN_CONECTAR_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTN_CONECTAR.Click
SocketClient = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
IPAddres = IPAddress.Parse(txt_ip.Text)
Dim PuertoIP As IPEndPoint = New IPEndPoint(IPAddres, 1863)
SocketClient.BeginConnect(PuertoIP, New AsyncCallback(AddressOf Conectar), Nothing)
If SocketClient.Connected = True Then
MsgBox("conectado")
Else
MsgBox("No se logro la conexion")
End If
End Sub
es algo simple .. pero no logro conectar el cliente al servidor.. tuve una idea y agregue esa ultima condicion "If SocketClient.Connected = True Then" y al tratar de conectar pues me va directo al "ELSE" .. nose en donde esta el problema talves ustedes me puedan ayudar en esto.... espero sus aportes ya que esto tambien servira para los que estean intentando crear una aplicacion como esta.. gracias de antemano ^^
salu2 !!
Valora esta pregunta


0