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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


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

Desconectado Desconectado

Mensajes: 4


Ver Perfil
sockets
« en: 16 Marzo 2010, 01:10 am »

Hola buenas, tengo un pequeño problema.
Quiero hacer un cliente al cual conecte a distintos servers simultaneamente y el comando que envie se envie a todos.
Hasta hay bien, el problema esta en que no consigo hacer varias conexiones a la ver solo una.
A ver si me podeis ayudar.

Gracias de antemano

aqui el codigo

Código:

Imports System.IO
Imports System.Net.Sockets
Imports System.Text
Imports System.Threading


Public Class Form1

    Private oTCPStream As Net.Sockets.NetworkStream
    Public Shared oTCP As New Net.Sockets.TcpClient()
    Private bytWriting As [Byte]()
    Private bytReading As Byte()

    Private oHebras As Thread


    Public Delegate Sub ParameterizedThreadStart(ByVal obj As String)

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        txtNameFile.ReadOnly = True
        OpenFileDialog1.Filter = "File Txt |*.txt"
        OpenFileDialog1.Title = "Open File"
        OpenFileDialog1.Multiselect = False

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnArchivo.Click

        ComboBox1.Items.Clear()

        If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
            txtNameFile.Text = OpenFileDialog1.FileName

        End If
        If Not Trim(txtNameFile.Text) = "" Then
            Dim objReader As New StreamReader(txtNameFile.Text)
            Dim sLine As String = ""

            While sLine IsNot Nothing
                sLine = objReader.ReadLine()
                If sLine IsNot Nothing Then
                    ComboBox1.Items.Add(sLine)
                End If
            End While

            objReader.Close()

        End If

    End Sub

    Private Function ConnServ(ByRef VarIP) As Object

        If Not VarIP = "" Then
            Try
                System.Threading.Thread.Sleep(1500)

                oTCP.SendTimeout = 1500
                oTCP.Connect(Trim(VarIP), "8000")

                oTCPStream = oTCP.GetStream

                WriteData(Trim(txtUser.Text) & vbCrLf)
                System.Threading.Thread.Sleep(500)

                WriteData(Trim(txtPassword.Text) & vbCrLf)
                System.Threading.Thread.Sleep(500)

                WriteData("Hello Serv" & vbCrLf)
                System.Threading.Thread.Sleep(500)

                '  oTCPStream.Close()
                '  oTCP.Close()

            Catch ex As Exception
                MsgBox(ex.Message)

            End Try

        End If

        Return Nothing

    End Function

    Private Sub WriteData(ByVal sData As String)

        bytWriting = System.Text.Encoding.ASCII.GetBytes(sData)

        oTCPStream.Write(bytWriting, 0, bytWriting.Length)

    End Sub


    Private Sub btnConn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConn.Click

        Dim I As Integer
        Dim NewIP As String


        For I = 0 To ComboBox1.Items.Count - 1
            NewIP = (ComboBox1.Items(I).ToString)

            Dim t As New Thread(DirectCast(Function() ConnServ(NewIP), ThreadStart))
            t.Start()


        Next
    End Sub
End Class



En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: sockets
« Respuesta #1 en: 16 Marzo 2010, 13:46 pm »

No se puede conectar un socket cliente a varios servidores. Debes hacerte un array de sockets (o tcpClients) que conecten uno a cada servidor. Luego para mandarle los datos. Recorres ese arreglo enviando uno por uno


En línea

[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.646


My software never has bugs. Its just features!


Ver Perfil WWW
Re: sockets
« Respuesta #2 en: 16 Marzo 2010, 14:23 pm »

Exacto, un socket por conexión, jjejej Raul deja el empeño con los sockets, FlashNet usa TcpClient :P es lo mismo pero más arreglado.. :D

Claro, amenos de que desees controlar mejor la conexión, pero no creo que sea tu caso.

Un saludo!
En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: sockets
« Respuesta #3 en: 16 Marzo 2010, 14:25 pm »

Soy socket-Fan! JAJA.... es que desde que aprendi sockets (en vb6) lo uso de esa manera y me parece mas "comoda"
En línea

[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.646


My software never has bugs. Its just features!


Ver Perfil WWW
Re: sockets
« Respuesta #4 en: 16 Marzo 2010, 15:02 pm »

:P A mi también me gusta hacer las cosas así. xD es mas divertido. mas crudo :D
En línea

flashnet

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: sockets
« Respuesta #5 en: 16 Marzo 2010, 16:15 pm »

Me podias poner un ejemplo simple de conexion multiple con TcpClient?
y como se realizaria con un array?

Muchas gracias a los 2 por la ayuda

Exacto, un socket por conexión, jjejej Raul deja el empeño con los sockets, FlashNet usa TcpClient :P es lo mismo pero más arreglado.. :D

Claro, amenos de que desees controlar mejor la conexión, pero no creo que sea tu caso.

Un saludo!
En línea

[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.646


My software never has bugs. Its just features!


Ver Perfil WWW
Re: sockets
« Respuesta #6 en: 16 Marzo 2010, 20:35 pm »

Uhm, ahora no estoy en el equipo con VS y no puedo probar :( Alquien me puede ayudar aki , raul! jaja
En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: sockets
« Respuesta #7 en: 16 Marzo 2010, 22:01 pm »

acabo de reformatear y tampoco tengo el vs, asi que pondre algo de C# con pseudo codigo JAJA XD

Código
  1. using System.Collections.Generic;
  2. using System.Net;
  3. using System.Net.Sockets;
  4. using System.Net;
  5.  
  6. namespace MuestraClienteMultiple{
  7. class program {
  8.  
  9. struct Conexion {
  10.   byte[] buffer;
  11.   TcpClient client;
  12.   string host;
  13. }
  14.  
  15. static int main() {
  16. string[] hosts = { "google.com", "www.raul338.com.ar" }; // direcciones servidor
  17. List<Conexion> conexiones = new List<Conexion>(hosts.Length); // Lista del mismo tamaño de las direcciones
  18.  
  19. foreach (string s in hosts) {
  20.   Conexion conex;
  21.   conex.host = s;
  22.   conex.buffer = new Byte[2048]; // 2 Mb de buffer
  23.   conex.client = new TcpClient(); // Direccion en el puerto 80
  24.   conexiones.Add(conex);
  25.  
  26.   conex.client Connect(s, 80);
  27.   if (conex.client.Connected) {
  28.      StreamReader sr = new StreamReader(conex.client.GetStream());
  29.      Console.WriteLine(sr.ReadToEnd());
  30.   }
  31.   conex.Close();
  32. } // foreach
  33.  
  34. }
  35. }// class program
  36. }// namespace
  37.  

Deberia funcionar, .... es un ejemplo basico inventado al vuelo. Te devuelve las salidas HTML de google y de mi pagina web :P
En línea

flashnet

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: sockets
« Respuesta #8 en: 16 Marzo 2010, 22:39 pm »

Muchisimas gracias a los 2, le voy a echar un vistazo.

Se agradece vuestro interes

:-)
En línea

[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.646


My software never has bugs. Its just features!


Ver Perfil WWW
Re: sockets
« Respuesta #9 en: 17 Marzo 2010, 15:31 pm »

Excelente, Y eso que esta echo a lo rápido, pero quedo muy bien, voy a modificarlo con tu permiso.

Código
  1. using System.Collections.Generic;
  2. using System.Net;
  3. using System.Net.Sockets;
  4. using System.Net;
  5.  
  6. namespace MuestraClienteMultiple{
  7. class program {
  8.  
  9. public class Conexion {
  10.   byte[] buffer;
  11.   TcpClient client;
  12.   string host;
  13.  
  14.   public Conexion(string hostname, int bufferSize){
  15.       host =hostname;
  16.       buffer = new Byte[bufferSize];
  17.   }
  18.  
  19.   public string GetData(){
  20.       string result=String.Empty;
  21.       try{
  22.          client Connect(s, 80);
  23.  
  24.          if (client.Connected) {
  25.              StreamReader sr = new StreamReader(client.GetStream());
  26.              result= sr.ReadToEnd());
  27.          }
  28.       }
  29.       finally{
  30.          conex.Close();
  31.       }
  32.       return result;
  33.   }
  34. }
  35.  
  36. static int main() {
  37. string[] hosts = { "google.com", "www.raul338.com.ar" }; // direcciones servidor
  38. List<Conexion> conexiones = new List<Conexion>(hosts.Length); // Lista del mismo tamaño de las direcciones
  39.  
  40. foreach (string s in hosts) {
  41.   Conexion conex = new Conexion(x, 2048);
  42.   //conex.buffer = new Byte[2048]; // 2 Mb de buffer
  43.   //conex.client = new TcpClient(); // Direccion en el puerto 80
  44.   conexiones.Add(conex);
  45.  
  46.   Console.WriteLine(conex.GetData());
  47.  
  48. } // foreach
  49.  
  50. }
  51. }// class program
  52. }// namespace
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Sockets
Scripting
Panic0 1 3,557 Último mensaje 20 Agosto 2020, 12:56 pm
por Drakaris
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines