[TCP]Envoyer un fichier en mode binaire

cs_Sobieski Messages postés 54 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 13 mars 2007 - 30 juin 2005 à 12:24
cs_Sobieski Messages postés 54 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 13 mars 2007 - 1 juil. 2005 à 12:01
Voila mon probleme : Je dois envoyer un fichier mp3 en mode binaire en TCP à un device. Par contre je sais pas du tout comment faire (je fais du TCP qu'avec du WriteLine comme un gros vilain).

Quelqu'un pourrait-il m'aider ?

3 réponses

Miiitch Messages postés 52 Date d'inscription jeudi 28 octobre 2004 Statut Membre Dernière intervention 24 août 2005 1
30 juin 2005 à 13:12
Chaque objet TcpClient possede une methode GetStream qui renvoit un
NetworkStream. Il ne reste plus qu'a copier ton FileStream qui contient
ton mp3 dans le NetworkStream.



Ici la page MSDN correspondante:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemnetsocketstcpclientclassgetstreamtopic.asp


Miiitch
0
cs_Sobieski Messages postés 54 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 13 mars 2007
1 juil. 2005 à 11:23
J'imagine qu'il faut se servir de ca :

TcpClient tcpClient = new TcpClient ();
NetworkStream netStream = tcpClient.GetStream ();
if (netStream.CanWrite)
{
Byte[] sendBytes ;
//Ici on met le fichier dans sendBytes ?
netStream.Write (sendBytes, 0, sendBytes.Length);
}

Par contre comment je met mon fichier dans sendBytes ? Je pige pas trop comment fonctionne un FileStream.
La j'ai fait FileStream fs = File.Open(soundpath+soundfile, FileMode.Open)
Ensuite je pensais faire un truc genre
fs.Read(sendBytes,0,) // par contre comment je récupère la longueur de mon mp3 en byte pour le lire en entier ?

Merci d'avance !
0
cs_Sobieski Messages postés 54 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 13 mars 2007
1 juil. 2005 à 12:01
Ma méthode ressemble à cette horreur :

public void playTest(int num)
{
byte[] sendBytes=new byte[100000];
FileStream sr = File.Open(soundpath+"explosion01.mp3",FileMode.Open);
if(num==0)
{
sr.Read(sendBytes,0,100001);
clientSockStream1.Write(sendBytes,0,sendBytes.Length);
}
if(num==1)
{
sr.Read(sendBytes,0,100001);
clientSockStream2.Write(sendBytes,0,sendBytes.Length);
}
}

La feinte c'est que je sais pas comment on récupère la taille en byte du fichier .mp3 :/ donc mes 10000 passent pas.
0
Rejoignez-nous