begin process at 2012 02 15 18:03:30
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

Réseau et Internet

 > 

Envoyer un fichier de plus de 8Ko dans un NetworkStream...


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Envoyer un fichier de plus de 8Ko dans un NetworkStream...

mardi 14 juin 2005 à 12:01:51 | Envoyer un fichier de plus de 8Ko dans un NetworkStream...

Totoroyamada

Bonjour, j'ai récupéré sur le net (je ne sais malheureusement plus où) un code pour envoyer des fichiers par réseau, seulement je suis confronté à un petit problème (mais gros pour moi), à savoir la taille des paquets TCP... Du coup quand j'envoie un fichier, quand il arrive il ne fait plus que 8Ko... et évidemment n'est plus valide...
Ci-joint le code, il faut juste une Form1 et 2 boutons bAttendre et bEnvoyer, ainsi qu'un fichier à envoyer ("C:\Mes Documents\vb1\Test\video.mov" dans mon exemple). Il est configuré pour marcher en local.
Imports System.Net.Sockets
Imports System.Net
Imports System.Text
Imports System.IO

    
Const portNo As Integer = 500
    Dim localAdd As System.Net.IPAddress = _
        IPAddress.Parse("127.0.0.1")
    'On attend de 127.0.0.1

    Dim listener As New TcpListener(localAdd, portNo)

    Private Sub bAttendre_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bAttendre.Click
        Me.Cursor = Cursors.WaitCursor
        Attendre()
        Me.Cursor = Cursors.Default
    End Sub

    Private Sub bEnvoyer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bEnvoyer.Click
        Me.Cursor = Cursors.WaitCursor
        Envoyer()
        Me.Cursor = Cursors.Default
    End Sub

    Private Sub Attendre()

        listener.Start()
        Console.WriteLine("Listening...")
        Label1.Text = "En attente..."

        Dim tcpClient As TcpClient = listener.AcceptTcpClient()
        Dim NWStream As NetworkStream = tcpClient.GetStream
        Dim bytesToRead(tcpClient.ReceiveBufferSize) As Byte

        '---read incoming stream
        Dim numBytesRead As Integer = NWStream.Read(bytesToRead, 0, CInt(tcpClient.ReceiveBufferSize))

        '---write the bytes to file
        Const FILE_NAME = "C:\Mes Documents\vb1\Test\newvideo.mov"
        Dim fs As System.IO.FileStream
        fs = New FileStream(FILE_NAME, FileMode.CreateNew, FileAccess.Write)
        fs.Write(bytesToRead, 0, numBytesRead)

        fs.Close()

        Label1.Text = "Fichier reçu!"

        tcpClient.Close()
        listener.Stop()

    End Sub

    Private Sub Envoyer()
        Const portNo = 500
        Const FILE_NAME = "C:\Mes Documents\vb1\Test\video.mov"
        Label1.Text = "Envoi en cours..."
        Dim tcpClient As New System.Net.Sockets.TcpClient
        'On envoie à 127.0.0.1
        tcpClient.Connect("127.0.0.1", portNo)

        Dim NWStream As NetworkStream = tcpClient.GetStream
        Dim bytesToSend(tcpClient.ReceiveBufferSize) As Byte

        Dim fs As FileStream
        fs = New FileStream(FILE_NAME, FileMode.Open, FileAccess.Read)

        Dim numBytesRead As Integer = fs.Read(bytesToSend, 0, bytesToSend.Length)
        fs.Close()

        '---send the text
        NWStream.Write(bytesToSend, 0, numBytesRead)

        Label1.Text = "Envoi effectué!"

        tcpClient.Close()
    End Sub

Bref, si quelqu'un pouvait m'expliquer comment séparer les paquets et les joindre à l'arrivée, je lui en serai éternellement reconnaissant...

mardi 14 juin 2005 à 17:28:09 | Re : Envoyer un fichier de plus de 8Ko dans un NetworkStream...

Totoroyamada

Bon j'ai à demi résolu mon problème, à savoir que je fixe moi-même
tcpClient.ReceiveBufferSize
Alors pour un petit fichier (2Mo), ça passe, par contre pour du gros non... j'ai donc toujours besoin de diviser tout ça.
Je me suis inspiré de la source "Splitteur de fichier" pour essayer de séparer ça en petit paquets que j'enverrai successivement, mais j'ai un problème au niveau de la réception...
Donc je suis toujours en attente d'une main secourable!

samedi 26 août 2006 à 23:40:14 | Re : Envoyer un fichier de plus de 8Ko dans un NetworkStream...

teo770

Des avancées avec ce problème ?

En faite, je pense qu'il y a une limite aux buffersize, non ?

Merci


Cette discussion est classée dans : fichier, system, fs, envoyer, tcpclient


Répondre à ce message

Sujets en rapport avec ce message

envoyer fichier de client vers serveur [ par clowzer ] [color=blue]saut a tou : [/color] [color=purple]j'ai fait une application client serveur pour envoyer un fichier mais le fichier reçu et incomplet Affichage double d'une page html [ par Clone27 ] Bonjour à tous,J'ai créer un serveur TCP avec VB 2005 qui est censé avoir pour client une page web d'un navigateur internet.Il fonctionne donc avec le Envoyer Fichier En Hexa Dans Un Panneau [ par johann74270 ] Bonjour, Je suis en projet d'évolution avec ma société. En VB.NET, j'envoie les données en Hexadécimal comme ceci : [code=vb]Dim Message = New Byte() ENvoie de fichier via socket ???? [ par fdiedler2000 ] Bonjour, Dans le cadre, d'un Chat "Serveur/Client", je voudrais créer une possibilité d'envoyer n'importe quel type de fichier ( texte, son, images, Afficher liste de fichier dans listbox (ok) + afficher le contenu du fichier dans textbox quand il est selectionné. [ par KcHeY ] Bonsoir, Je ne suis pas programmeur mais plutôt bidouilleur sur vb.net [^^confus2] Je créé des petits programme pour mes besoins et parfois par plais boutons Enregistrer envoyer et vider [ par aminelyamani ] Bonjour; j'ai un Tableau de bord qu'on rempli quotidiennement dans notre usine. je voudrai créer un ou des boutons , qui me permettent: 1- enregistrer envoyer un fichier sur une page php avec visual basic [ par le_prince_des_ordinateurs ] je code sur visual basic 2008 et je veux envoyer des données sur une page phpun login un mot de passeun fichier j'arrive à envoyer un login et un mot Comment arretez l'utilisation d'un fichier par le processus System [ par cbz ] Bonjour,N'étant pas très vieux en dev, j'ai un petit soucis:Via du VBscript dans un HTA, je lance la ligne de commande suivante. "typeperf -s " & di problème d'implémentation de StreamWriter VB .Net [ par houdar ] Bonjour tout le monde, Je suis débutante en VB .NET, et je suis entrain de travailler sur une application avec cet environnement. J'ai un problème, si


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,998 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales