Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : vb.net et page HTML [ Réseaux & Internet / Autre ] (mpjp57)

jeudi 24 avril 2008 à 15:05:35 | vb.net et page HTML

mpjp57

Bonjour a tous je me permet de faire apel a vos connaissances car g un probleme. J'ai créé un programme sur VB.net qui ouvre une connection avec un serveur voila le programme en VB.net :

Public Class Form1
    Const portNumber As Integer = 8080
    Dim tcpListener As New Net.Sockets.TcpListener(portNumber)
    Public ServerFlag As Integer


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Label1.Text = "Server is disabled"
        ServerFlag = 0
        Timer1.Interval = 100
        Timer1.Enabled = True
        'Label2.Text = Net.IPAddress

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If ServerFlag = 0 Then
            ServerFlag = 1
            Button1.Text = "Stop server"
            ' Must listen on correct port- must be same as port client wants to connect on.

            tcpListener.Start()
            Label1.Text = "Server is enabled, wait for client!"
        Else
            ServerFlag = 0
            Button1.Text = "Start server"
            tcpListener.Stop()
            Label1.Text = "Server is disabled"

        End If
       
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

        If ServerFlag = 1 Then
            ' Only if pending connection
            If (tcpListener.Pending = True) Then
                Timer1.Enabled = False
                'Accept
                Dim tcpClient As Net.Sockets.TcpClient = tcpListener.AcceptTcpClient()
                Label1.Text = "Connection accepted!"

                ' Get the stream
                Dim networkStream As Net.Sockets.NetworkStream = tcpClient.GetStream()

                ' Read the stream into a byte array
                Dim bytes(tcpClient.ReceiveBufferSize) As Byte
                networkStream.Read(bytes, 0, CInt(tcpClient.ReceiveBufferSize))
                ' Return the data received from the client to the console.
                Dim clientdata As String = System.Text.ASCIIEncoding.ASCII.GetString(bytes)

                MsgBox("Client sent: " + clientdata)

                Dim responseString As String = "Connected to server ... please wait"

                Dim sendBytes As [Byte]() = System.Text.ASCIIEncoding.ASCII.GetBytes(responseString)
                networkStream.Write(sendBytes, 0, sendBytes.Length)

                Dim File2send As System.IO.FileStream = System.IO.File.OpenRead(".\\equinoxe.htm")
                Dim FileReader As New System.IO.StreamReader(File2send)
                responseString = FileReader.ReadToEnd
                FileReader.Close()
                File2send.Close()

                Dim buff1 As [Byte]() = System.Text.ASCIIEncoding.ASCII.GetBytes(responseString)
                networkStream.Write(buff1, 0, buff1.Length)

                '================ envoi fichierimage ============
                MsgBox("Client sent: " + clientdata)

          
                File2send = System.IO.File.OpenRead(".\main.jpg")
                Dim FileReader2 As New System.IO.StreamReader(File2send)
                responseString = FileReader2.ReadToEnd
                FileReader2.Close()
                File2send.Close()

                Dim buff2 As [Byte]() = System.Text.ASCIIEncoding.ASCII.GetBytes(responseString)
                networkStream.Write(buff2, 0, buff2.Length)
                '================================================


                'MsgBox("Message Sent />  " + responseString)


                Timer1.Enabled = True
            End If

        End If

    End Sub
End Class

la connection serveur fonctionne ma page html s'ouvre bien mais le probleme c'est que l'image je n'arrive pas a la recuperez je la recoit en format texte je pense que sq vient de mon streamReader.

Je vous prie de bien vouloir m'aider svp je suis vraiment en galere.


jeudi 24 avril 2008 à 16:32:24 | Re : vb.net et page HTML

Kevin.Ory

Salut,

File2send = System.IO.File.OpenRead(".\main.jpg")
Dim FileReader2 As New System.IO.StreamReader(File2send)
responseString = FileReader2.ReadToEnd
FileReader2.Close()
File2send.Close()

Tu lis le stream de l'image pour la stocker dans une variable string, je vois pas ce que tu pourrais avoir d'autre qu'un "
format texte"

Fais plutot un truc de ce genre:

File2send = System.IO.File.OpenRead(".\main.jpg")
' Chargement de l'image:
Dim Image as New Bitmap(
File2send)
File2Send.Close




jeudi 24 avril 2008 à 17:10:22 | Re : vb.net et page HTML

mpjp57

Je te remercie bcp kevin pour ta reponse sa l'air de fonctionner mais je n'affiche quand meme pas mon image g juste un carré avec une croix rouge au moins je n'est plus le  tableau de bytes.

jeudi 24 avril 2008 à 23:36:59 | Re : vb.net et page HTML

Kevin.Ory

Re,

Ouais, mon dernier message n'était pas très utile, puisque il montre comment créer une Image, que tu ne peux pas envoyer tel quel sur le réseau.

Si je reprend du début, c'est effectivement ton StreamReader qui pose problème, le StreamReader est conçu pour lire du texte.
Et que je sache, tu peux pas stoquer des données binaires dans un String, tu aura des pertes de données.
Pourquoi passer par une variable String et utiliser un StreamReader?

      File2send = System.IO.File.OpenRead(".\main.jpg")
      Dim FileReader2 As New System.IO.StreamReader(File2send)
      ' Lecture du fichier jpg en text???
      responseString = FileReader2.ReadToEnd           
      FileReader2.Close()  
      File2send.Close()                           ' La fermeture du Reader ferme aussi le Stream -> inutile       
      ' Pour le retransformer en Bytes?
      Dim buff2 As [Byte]() = System.Text.ASCIIEncoding.ASCII.GetBytes(responseString)
      networkStream.Write(buff2, 0, buff2.Length)


Il faut, au contraire de ce que tu dis en dernier, tout faire dans un tableau de Bytes.
Alors voici la solution (c'est plus court ) :

      Dim ImgBuff() As Byte = IO.File.ReadAllBytes(".\main.jpg")
      networkStream.Write(ImgBuff, 0, ImgBuff.Length)

Mais tu peux aussi faire avec la version longue:

    ' Ouvrir le fichier
    Dim FileStream As IO.FileStream = System.IO.File.OpenRead(".\main.jpg")
    ' Utiliser un BinaryReader et pas un StreamReader pour lire des données binaires
    Dim FileReader As New System.IO.BinaryReader(FileStream)
    ' Lire le fichier complet et en faire un tableau de bytes
    Dim ImgBuff() As Byte = FileReader.ReadBytes(FileStream.Length)
    ' Fermer le Reader (le Stream est fermé aussi avec
FileReader.Close)
    FileReader.Close()
    ' Envoyer le tableau
    networkStream.Write(ImgBuff, 0, ImgBuff.Length)





jeudi 24 avril 2008 à 23:47:02 | Re : vb.net et page HTML

mpjp57

non malheuresement sa ne fonctionne tjrs pas maintenant sa m'affiche le tableau de byte et le petite caré avec la croix.

En tout cas un grand merci pour ton aide je suis en train de devenir dingue avec ce programme.

vendredi 25 avril 2008 à 01:37:50 | Re : vb.net et page HTML

Kevin.Ory

Bah pourtant mon code envois bien les données du fichier, tel quel.

Ou est-ce que ça t'affiche un tableau de Bytes?

A mon avis, c'est que tu n'envois pas ces données au bon endroit ou que le format n'est pas supporté à l'affichage

vendredi 25 avril 2008 à 04:10:38 | Re : vb.net et page HTML

mpjp57

A la fin de ma page HTML il y une serie de code incomprehensible je pense ke ce sont les bytes de l'images et a l'endroit ou je veut mon image il ya le carré avec la croix rouge:

 


vendredi 25 avril 2008 à 07:28:53 | Re : vb.net et page HTML

Kevin.Ory

Heu...

Tu envois les données de l'image directement dans un fichier HTML?

Je te conseil de voir la source d'une page web contenant une image, voir à quoi ca ressemble

vendredi 25 avril 2008 à 16:54:10 | Re : vb.net et page HTML

mpjp57

oui je l'envoie ds un fichier HTML parce ke le but de mon serveur c'est lorqu'il est actif  je dois meconnecté dessus avec l'adresse ip 127.0.0.1:8080 et sa m'affiche mapage HTML avec toute mes commande et mon image.

vendredi 25 avril 2008 à 21:14:49 | Re : vb.net et page HTML

Kevin.Ory

Oui d'accord, mais une image n'est jamais dans une page HTML.

L'image doit être un fichier séparé, et si tu veux l'afficher dans ton HTML tu y met le lien...


1 2

Cette discussion est classé dans : net, text, system, if, responsestring


Répondre à ce message

Sujets en rapport avec ce message

system.net.mail [ par YoumeW91 ] salut! j'ai d'enooorme problemes avec system.net.mail qui dans vb 2005 l'utilise pour envoyer un email . j'aimerais si possible un petit code en exemp Erreur de systax [ par DanMor498 ] Imports System.Data Imports system.Data.OleDb Imports</fo Calendrie [ par asmaa17 ] Salut à tout,je suis entraint de creer une calandrie,mais j'ai trouve des probléme.je veux quand je sélectionne un mois ,le programme affiche le calen création d'un tableau dynamique [ par francelo ] voici les codes d'un programme :Dans ce programme, je voulais à partir du Msgbox si le code n'existe pas l'article soit ajouté dans le Tableau comment Lecteur et modifieur de talbe SQL [ par dgreg60 ] Bonjour à tous,Je débute en programmation.Je cherche comment faire un utilitaire qui me permet de me connecter à une base SQL server et d'écuter une r [VB.NET] Exécution exe sur le réseau, erreur 'System.Security.Permissions' [ par nattical ] J'ai développé un petit utilitaire en VB.Net pour dezipper, et concaténer des fichiers csv, en vue d'une alimentation en base de données. <? Wanted "system.net.sockets" Dead or alive [ par sniceper ] Bonsoir, dans le cadre d'une application C/S en VB.NET (sur Visual Studio 2008), j'ai trouvé en me documentant qu'il fallait utiliser system.net.socke Diminuer la ressource mémoire du CPU pour une tâche [ par Marko007 ] Bonjour,comment est-il possible de diminuer au niveau du processeur (l'occupation en taille mémoire) ?>> Options dans Visual Studio 2005, objet vb à n


Nos sponsors

Sondage...

CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,796 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.