J'ai ici un petit serveur HTTP écrit en C# et jusqu'à présent j'avais seulement besoin d'envoyer du texte brut à l'expéditeur. Mais maintenant je dois envoyer une image JPG et je ne comprends pas comment.C# Envoyer l'image via HTTP
c'est ce que j'ai maintenant:
// Read the HTTP Request
Byte[] bReceive = new Byte[MAXBUFFERSIZE];
int i = socket.Receive(bReceive, bReceive.Length, 0);
//Convert Byte to String
string sBuffer = Encoding.ASCII.GetString(bReceive);
// Look for HTTP request
iStartPos = sBuffer.IndexOf("HTTP", 1);
// Extract the Command without GET_/ at the beginning and _HTTP at the end
sRequest = sBuffer.Substring(5, iStartPos - 1 - 5);
String answer = handleRequest(sRequest);
// Send the response
socket.Send(Encoding.UTF8.GetBytes(answer));
Je pense que je dois faire une sorte de filestream au lieu d'une chaîne, mais je n'ai vraiment pas de colle ..
Pouvez-vous envoyer une partie de votre méthode de handleRequest? Je devine que c'est là que vous construisez l'objet de réponse HTTP qui sera renvoyé au navigateur faisant la demande. Vous devrez trouver comment modifier cela pour prendre en charge les images. –
J'ai de la colle si vous voulez l'emprunter:/ – jlafay
@Martin Si vous lisez à partir du fichier, vous pouvez simplement appeler socket.SendFile. voir ici (msdn.microsoft.com/en-us/library/sx0a40c2.aspx –