crear sockets
Publicado por Jordi (1 intervención) el 13/07/2006 21:13:53
Hola, necesito poder conectar a un servidor a través de varios sockets, i en cada socket abierto poder controlar la informacion que corre por sus puertos serie. Eso ya lo tengo, pero lo que me passa, es que cuando creo varios sockets, se crean todos con el mismo NetworkStream, y no puedo diferenciar uno de otro. La conexion la tengo asi:
Public Sub Conectar(ByVal IP As String, ByVal port As Integer, ByVal Con As Integer)
Conexions(Con).TCP = New System.Net.Sockets.TcpClient
Conexions(Con).TCP.Connect(IP, port)
Conexions(Con).networkStream = Conexions(Con).TCP.GetStream()
Conexions(Con).conectat = 1
End Sub
Y para recibir los datos de los sockets:
Public Sub Receive()
Dim txt As String
For i As Integer = 0 To Nports
If Conexions(i).networkStream.DataAvailable Then
Select Case i
Case 0
Conexions(i).networkStream.Read(bytes, 0, 8192)
txt = Encoding.ASCII.GetString(bytes).ToString
Form1.txtRep.Text = txt
Form1.lstCon0.Items.Add(txt)
Form1.lstCon0.Refresh()
Case 1
Conexions(i).networkStream.Read(bytes, 0, 8192)
txt1 = Encoding.ASCII.GetString(bytes).ToString
Form1.txtRep.Text = txt1
Form1.lstCon1.Items.Add(txt1)
Form1.lstCon1.Refresh()
End Select
End If
Next i
End Sub
Tengo una tabla con las "diferentes" conexiones que voy haciendo, ya que son en distintos puertos, pero a la hora de hacer "Conexions(i).networkStream.Read(bytes, 0, 8192)" el networkStream siempre es lo mismo, y no distingue un socket de otro y por tanto recibo TODO lo que llega a los puertos de manera mezclada. Podria alguien dar-me alguna pista o solucion para esto? Gracias!!
Public Sub Conectar(ByVal IP As String, ByVal port As Integer, ByVal Con As Integer)
Conexions(Con).TCP = New System.Net.Sockets.TcpClient
Conexions(Con).TCP.Connect(IP, port)
Conexions(Con).networkStream = Conexions(Con).TCP.GetStream()
Conexions(Con).conectat = 1
End Sub
Y para recibir los datos de los sockets:
Public Sub Receive()
Dim txt As String
For i As Integer = 0 To Nports
If Conexions(i).networkStream.DataAvailable Then
Select Case i
Case 0
Conexions(i).networkStream.Read(bytes, 0, 8192)
txt = Encoding.ASCII.GetString(bytes).ToString
Form1.txtRep.Text = txt
Form1.lstCon0.Items.Add(txt)
Form1.lstCon0.Refresh()
Case 1
Conexions(i).networkStream.Read(bytes, 0, 8192)
txt1 = Encoding.ASCII.GetString(bytes).ToString
Form1.txtRep.Text = txt1
Form1.lstCon1.Items.Add(txt1)
Form1.lstCon1.Refresh()
End Select
End If
Next i
End Sub
Tengo una tabla con las "diferentes" conexiones que voy haciendo, ya que son en distintos puertos, pero a la hora de hacer "Conexions(i).networkStream.Read(bytes, 0, 8192)" el networkStream siempre es lo mismo, y no distingue un socket de otro y por tanto recibo TODO lo que llega a los puertos de manera mezclada. Podria alguien dar-me alguna pista o solucion para esto? Gracias!!
Valora esta pregunta


0