C'est un peu difficile d'expliquer plus simplement.
J'utilise un système "élaboré" de messages pour identifier le type de données envoyée, ça on peux mettre de côté.
Comme suggéré comme Toasty, il suffit d'envoyer le fichier en mode binaire, simplement en utilisant la commande "Open" avec le mode "Binary".
Mais juste pour t'éclaircir, voici comment fonctionne ma source:
1. Client et Serveur doivent être connectés ensemble;
2. D'un côté ou de l'autre on doit charger une image grâce au bouton prévu, ce dernier affiche l'image dans l'interface.
3. Quand on demande l'envois, l'image est envoyée à partir du contrôle PictureBox et non du disque, mais le plus simple est réellement de l'envoyer du disque en chargeant dans une variable String toute l'image Binairement puis on l'envoie.
Alors pourquoi passer par le PictureBox? Parce qu'à l'origine l'image originale/chargée était en fait générée par une WebCam et c'était le seul moyen de la transmettre (il y as sûrement mieux, comme utiliser l'objet de NetMeeting mais j'y suis pas arrivé), j'ai simplement retiré le code la concernant.
Si tu t'attarde au code qui fait l'envois simple de fichiers tu as ta réponse dans ma source.