Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1630 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  [Socket] Répondre à une requête HTTP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Socket] Répondre à une requête HTTP

n°798597
Arjuna
Aircraft Ident.: F-MBSD
Posté le 17-07-2004 à 18:15:36  profilanswer
 

Je suis en train de faire une appli telnet. Et vu qu'elle va tourner sur le port 80, je voudrais faire en sorte de rejeter les navigateurs HTTP proprement.
 
Voici mon code :
 

Code :
  1. else if (input.IndexOf("HTTP" ) > -1 && input.IndexOf("GET " ) == 0)
  2.   {
  3.    System.Console.WriteLine("http client" );
  4.    serverStreamWriter.WriteLine("\n<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\"><html><head><title>MagicMUD</title></head><body>This server doesn't run a HTTP server. Please use a telnet client to use it!</body></html>" );
  5.    serverStreamWriter.Flush();
  6.    // Total n'importe quoi ?
  7.    serverStreamReader.Close();
  8.    serverStreamWriter.Close();
  9.    serverSocket.Shutdown(System.Net.Sockets.SocketShutdown.Both);
  10.    tcpServerListener.Stop();
  11.    System.Diagnostics.EventLog.WriteEntry("MagicMUD", "Client was a HTTP client", System.Diagnostics.EventLogEntryType.Information, 15);
  12.    return false;
  13.   }


 
Seulement, il y a un truc qui manque, car IE ne reçoit rien, et charge indéfiniment.
Pourtant, le serveur tourne correctement. Une requête HTTP envoyée par telnet me retourne bien le résulat.
Qu'est-ce qu'il manque ?
 
Lorsque je fait un telnet sur forum.hardware.fr, j'obtiens ceci :
 


<html>
      <head>
            <META HTTP-EQUIV="Refresh" CONTENT="0;URL=http://forum.hardware.fr/forum.php3">
                                                                                           </HEAD>
                                                                                                  <body>
                                                                                                        </body>
                                                                                                               </html>


 
Perte de la connexion à l'hôte.
 
La même sur mon serveur :
 


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><title>MagicMUD</title></head><body>This serve
r doesn't run a HTTP server. Please use a telnet client to use it!</body></html>
 
 
Perte de la connexion à l'hôte.


 
Soit la même chose :sweat:
 
Et pourtant HFR ça marche et pas moi :cry:
 
Par contre, un GET / sur mon site (IIS) ne produit rien, au bout du timeout, je reçois un BadRequest error :sweat: Donc impossible de savoir ce que renvois IIS (il doit y avoir des headers HTTP c'est pas possible autrement)

mood
Publicité
Posté le 17-07-2004 à 18:15:36  profilanswer
 

n°798600
Arjuna
Aircraft Ident.: F-MBSD
Posté le 17-07-2004 à 18:22:34  profilanswer
 

Groumpf !
 
Je réponds ça maintenant :
 
serverStreamWriter.WriteLine("HTTP/1.1\nContent-Type: text/html\nConnection: close\nContent-Length: 202\n\n<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\"><html><head><title>MagicMUD</title></head><body>This server doesn't run a HTTP server. Please use a telnet client to use it!</body></html>" );
 
Et c'est OK.
 
C'est quoi le vrai code HTTP pour dire que c'est OK ? 200 ?
 
Et c'est quoi le vrai truc message associé ?
 
Je me suis basé sur l'erreur 400 que renvoie IIS :
 

HTTP/1.1 400 Bad Request
Content-Type: text/html
Date: Sat, 17 Jul 2004 16:17:35 GMT
Connection: close
Content-Length: 39
 
<h1>Bad Request (Invalid Hostname)</h1>
 
Perte de la connexion à l'hôte.


 
A noter que la version d'Appache qui est sur HFR est buggée, car elle fait une réponse HTTP erronnée lorsque le client fait une requête erronnée :D (oeil pour oeil, dent pour dent :D)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  [Socket] Répondre à une requête HTTP

 

Sujets relatifs
[Access] Sauvegarder les résultats d'une requete dans une tablerequete infaisable d'une traite ???
ranger le résultat d'une requete dans un formulaireProblème de requête
[PHP][MySQL] MySQL retourne une valeur erroné à une requète max(id)ecrire une requete dans une table
PHP MySql : revenir au début d'un résultat de requete[MYSQL] plusieur requete pour le meme champ avec des SUM
[MySQL]HELP requeterequete sur date
Plus de sujets relatifs à : [Socket] Répondre à une requête HTTP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR