me vi obligado crear un nuevo post ya que el anterio no me lo respondian ...
bueno ya he aclarado algunas dudas despues de haber leido tanto
Encontre muchos tutoriales en Youtube y en google y llegue a terminar mi aplicacion utilizando Hilos,ya que mas he encontrado tutoriales con socket sincronos, pero ahora lo que quiero es utilizar socket asincronos.. quiero llegar a entender bien la diferencia entre estos 2 y de esta manera lograre entenderlo....ayer empeze con el proyecto guiandome de un tutorial en ingles:
Servidor:
Dim SocketServer As Socket
'Socket para aceptar la peticion del cliente
Dim SocketClient As Socket
'buffer
Dim Bytesfrom(10024) As Byte
Public Sub IniciarConeccion()
SocketServer = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
'aqui le doy la IP y el Puerto por donde se realizara la comunicacion
Dim ip As IPEndPoint = New IPEndPoint(IPAddress.Any, 1863)
SocketServer.Bind(ip)
'la cantidad de clientes (5)
SocketServer.Listen(5)
'con esto acepto cualquier peticion
SocketServer.BeginAccept(New AsyncCallback(AddressOf Aceptar), Nothing)
End Sub
Private Sub Aceptar(ByVal acp As IAsyncResult)
SocketClient = SocketServer.EndAccept(acp)
'siguo aceptando peticiones del cliente
SocketServer.BeginAccept(New AsyncCallback(AddressOf Aceptar), Nothing)
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Call IniciarConeccion()
End Sub
Cliente:
Public Class Form1
Dim Bytesfrom(10024) As Byte
Dim SocketClient As Socket = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
Private Sub Conectar_CS()
Dim IPAddres As IPAddress
IPAddres = IPAddress.Parse(txt_ip.Text)
Dim PuertoIP As IPEndPoint = New IPEndPoint(IPAddres, 1863)
'me conecto al servidor
SocketClient.BeginConnect(PuertoIP, New AsyncCallback(AddressOf Conectar), Nothing)
End Sub
Private Sub Conectar(ByVal ar As IAsyncResult)
SocketClient = ar.AsyncState
SocketClient.EndConnect(ar)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Call Conectar_CS()
End Sub
falta mas codigo para enviar y recibir mensajes pero yo quize hacerlo por partes.. o sea, que primero solo me mande un mensaje informandome que ya se establecio la conexión.. despues ya avanzar con la mensajeria y esas cosas...
Ahora esto lo he probado en mis 2 ordenadores y nada .... tambien probe esto en el servidor y en el cliente .. solo que en el cliente lo cambie por SocketCliente.conne... bla bla:
If SocketServer.Connected = True Then
MsgBox("Conectado. . . .")
End If
en el servidor:
BeginAccepted- acepta la peticion de algun cliente.
en el cliente:
BeginConnected- con esto el cliente envia una peticion al servidor para conectarse
pero nada... cuando trato de conectar el cliente con el servidor ni el mensaje y ni un error me da... =/ si algo esta mal en el codigo corriganme porfavor ya que el tutorial estaba en C# =/ ...
Espero sus aportes ya que este post tambien puede ayudar a otras personas que intenten crear este tipo de aplicacion....
Salu3 !! ^^