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

Problema VB NET y sockets

Estas en el tema de Problema VB NET y sockets en el foro de .NET en Foros del Web. Tengo este código maldito con dos formularios de un servidor y un cliente. Ayudadme por favor. Solo envía una sola vez desde el ultimo cliente ...
  #1 (permalink)  
Antiguo 07/02/2005, 03:03
 
Fecha de Ingreso: agosto-2004
Mensajes: 85
Antigüedad: 20 años, 3 meses
Puntos: 0
Problema VB NET y sockets

Tengo este código maldito con dos formularios de un servidor y un cliente. Ayudadme por favor. Solo envía una sola vez desde el ultimo cliente que arranco.

Servidor:

Imports System.Net
Imports System.Net.Sockets
Imports System.Threading
Imports System.Text.Encoding
Public Class Form2
Inherits System.Windows.Forms.Form

Structure cliente
Dim hilo As Thread
Dim osck As Socket
End Structure
Private osck As Socket
Private escuchadortcp As TcpListener
Private hiloconexion As Thread
Private ht As New Hashtable
Dim ocliente As cliente

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
escuchadortcp = New TcpListener(IPAddress.Any, 15000)
escuchadortcp.Start()
hiloconexion = New Thread(AddressOf Escucharconexiones)
hiloconexion.Start()

End Sub

Sub Escucharconexiones()

While True

osck = escuchadortcp.AcceptSocket
ocliente = New cliente
ocliente.osck = osck
ocliente.hilo = New Thread(AddressOf escucharclientes)
SyncLock ht
ht.Add(osck.RemoteEndPoint, ocliente)
End SyncLock
ocliente.hilo.Start()

End While


End Sub

Sub escucharclientes()

While True
Dim adatos(1000) As Byte
ocliente.osck.Receive(adatos, adatos.Length, SocketFlags.None)
TextBox1.AppendText(ASCII.GetString(adatos))
enviardatos(adatos)
End While

End Sub

Sub enviardatos(ByVal adatos() As Byte)
Dim oide As IDictionaryEnumerator
oide = ht.GetEnumerator
While oide.MoveNext
CType(oide.Value, cliente).osck.Send(adatos, adatos.Length, SocketFlags.None)
End While

End Sub

End Class


Cliente:

Imports System.io
Imports System.Net.Sockets
Imports System.Threading
Imports System.Text.Encoding

Public Class Form3
Inherits System.Windows.Forms.Form

Private clientetcp As TcpClient
Private hiloescucha As Thread
Private flujodatos As Stream

Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
clientetcp = New TcpClient("compaq", 15000)
hiloescucha = New Thread(AddressOf Escuchaservidor)
hiloescucha.Start()
End Sub

Sub Escuchaservidor()

While True
Dim adatos(500) As Byte
clientetcp.GetStream.Read(adatos, 0, adatos.Length)
TextBox1.AppendText(ASCII.GetString(adatos))
End While

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim adatos() As Byte
adatos = ASCII.GetBytes(TextBox2.Text + ControlChars.NewLine)
clientetcp.GetStream.Write(adatos, 0, adatos.Length)

End Sub
End Class
  #2 (permalink)  
Antiguo 22/02/2005, 04:20
 
Fecha de Ingreso: agosto-2004
Mensajes: 85
Antigüedad: 20 años, 3 meses
Puntos: 0
Por caridad alguien que responda. Gracias
  #3 (permalink)  
Antiguo 22/02/2005, 11:05
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 10 meses
Puntos: 7
Busca en el foro, ya se discutió sobre el tema (si mal no recuerdo tenía que ver con TcpListener's).

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
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 13:44.