Los foros del Guille

Si no encuentras respuesta, puedes buscar en el sitio del Guille

Google
 

dotNetManía + el sitio del Guille:
¡La mejor información de punto NET!
¡Suscríbete ya! y consigue un 10% de descuento

Selecciona el foro y pulsa en mostrar:     Mostrar 
De tu interés (algunos de los avisos publicados)

14/ene/2006
En la página de inicio se muestra la bandera de tu país, o al menos debería mostrarse si es que tu dirección IP está en mi base de datos. Si no te muestra la bandera, seguramente se mostrará un link para que me digas que IP estás usando y de que país eres... si es así, te agradecería que me lo dijeras.
También puedes poner la imagen de la bandera de tu país en tus mensajes, aquí te explico como.

  Foro: .NET.C# Cantidad:  Desde:   Hasta:    Aplicar   Responder 
Respuestas a: 57033 - perdida de Informacion con NetworkStream
IDAsuntoFechaNick 
57033 perdida de Informacion con NetworkStream15/04/13 20:23Noris_Sulheru   
Porque pierdo entre 2100 y 2200 bytes con este codigo:

class Server
{
    TcpListener tl;
    Socket s;
    NetworkStream ns;

    DataSet ds;

    void connect(IPAddress IPAddress, int Port)
    {
        tl = new TcpListener(IPAddress, Port);
        tl.Start();
        s = tl.AcceptSocket();
        ns = new NetworkStream(s);
        ds.ReadXml(ns);
    }
    void desconnect()
    {
        tl.Stop();
        s.Close();
    }
}

class client
{
    TcpClient tc;
    Stream strm;
    DataSet ds;

    void sendDB(IPAddress IPAddress, int Port)
    {
        tc = new TcpClient();
        tc.Connect(IPAddress, Port);
        strm = tc.GetStream();
        ds.ReadXml("miArchivo.xml");
        ds.WriteXml(strm);
    }
}

Soy relativamente nuevo con Stream aunke ya he experimentado con DataSet y Xml.
Cuando mi Class Server recibe los datos, pierde los primeros 2100 a 2200 bytes de datos independientemente del tamaño del archivo original.
Si dijeramos ke el archivo se corta por ser demasiado grande debería ser un corte proporcional pero tengo los respecticos cortes:

-1326619bytes: Pierde los primeros 2167 bytes
-3309bytes: Pierde los primeros 2179 bytes
-10168bytes: Pierde los primeros 2164 bytes

Son cortes muy desproporcionados a sus archivos.

Otro dato. Si uso un archivo inferior a 2048bytes, este ni se transmite.

Noris
[Editado: Noris_Sulheru, 15/04/2013 20:24:14]
[Noris_Sulheru, 15/04/2013 20:24:59]
[Noris_Sulheru, 15/04/2013 20:25:41]
[Noris_Sulheru, 15/04/2013 20:37:54]
[Noris_Sulheru, 15/04/2013 21:29:09]
IDAsuntoFechaNick 
57034 Re: perdida de Informacion con NetworkStream (Resp: 57033)15/04/13 22:28Noris_Sulheru   
Solucionado

public class Server
    {
        TcpListener tl;
        Socket s;
        NetworkStream ns;

        public DataSet ds;

        public Server() { ds = new DataSet(); }

        public void connect(IPAddress IPAddress, int Port)
        {
            tl = new TcpListener(IPAddress, Port);
            tl.Start();
            s = tl.AcceptSocket();
            ns = new NetworkStream(s);
            ds.ReadXml(ns);
        
            tl.Stop();
            s.Close();
        }
    }

    public class Client
    {
        TcpClient tc;
        Stream strm;
        public DataSet ds;

        public Client() { ds = new DataSet(); }

        public void connect(IPAddress IPAddress, int Port)
        {
            tc = new TcpClient();
            tc.Connect(IPAddress, Port);
            strm = tc.GetStream();

            ds.WriteXml(strm);
            tc.Close();
        }
    }

El problema residía en que trataba de reutilizar el mismo Stream y Socket sin cerrarlos una y otra vez.

Noris


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.

 
(c) Guillermo 'guille' Som, 2005-2017  - foros.elGuille v1.0.5.3 (23/Mar/2009 14:50 GMT +1)  - (ASP.NET 2.0 v2.0.50727.8762)
 
Usuarios activos: 23 - App. iniciada: 15/12/2017 14:58:54 GMT - La hora GMT del servidor es: 16/12/2017 05:03:55 GMT