Bonjour,
voilà j'ai codé en .Net avec le framework 2.0 un tres petit serveur http, le problème que j'ai est le suivant. Le serveur http est créé, et quand je lance une requette dans l'explorateur de la machine où je lance le serveur, j'accède au site prévu et tout, par contre, si on veut y accéder depuis un autre ordinateur, le serveur ne reçoit aucune requete. aussi quelqu'un peut il me dire si ça vient de l'architecture réseau où je lance le programme ou si ca vient du programme lui meme. Vous trouverez ci-dessous le code que j'ai tappé (attention c'est juste un début, un essai pour voir si ça marche ou pas), je l'ai fait avec VB.Net 2005 Express, et il faut créer une application console.
Imports System.Net
Imports System.IO
Module Module1
Public Racine() As String = {"http://172.16.2.9/"}
Public Const LocalRacine As String = "c:\"
Public ILCommand As String
Public Comm()
Public i As Int16
Dim Server As System.Net.HttpListener
Dim Context As System.Net.HttpListenerContext
Sub Main()
Server = New System.Net.HttpListener()
Server.AuthenticationSchemes = Net.AuthenticationSchemes.Basic
Server.UnsafeConnectionNtlmAuthentication = True
Server.Realm = "Entrez un pseudo :"
For i = 0 To UBound(Racine)
Server.Prefixes.Add(Racine(i))
Next i
Server.Start()
Server.BeginGetContext(AddressOf ReceivingRequest, Server)
Console.WriteLine("Host : ok")
Do
ILCommand = Console.ReadLine()
Comm = ILCommand.Split(" ")
If Comm(0).ToLower = "exit" Then Exit Do
Loop
Server.Stop()
Server.Close()
End Sub
Public Sub ReceivingRequest(ByVal Arg As System.IAsyncResult)
If Server.IsListening = False Then Exit Sub
Context = Server.EndGetContext(Arg)
Dim Url As String = Context.Request.Url.ToString.ToLower
Console.WriteLine(Url)
For i = 0 To UBound(Racine)
If Url = Racine(i) Then
Console.WriteLine(Context.User.Identity.Name)
End If
Next i
Dim LocalFileName As String = Url
For i = 0 To UBound(Racine)
LocalFileName = LocalFileName.Replace(Racine(i), LocalRacine)
Next i
LocalFileName = LocalFileName.Replace("/", "\")
If Strings.Right(LocalFileName.ToLower, 3) <> "htm" And _
Strings.Right(LocalFileName.ToLower, 3) <> "jpg" And _
Strings.Right(LocalFileName.ToLower, 3) <> "gif" Then
If Strings.Right(LocalFileName, 1) <> "\" Then LocalFileName &= "\"
LocalFileName &= "index.htm"
End If
Console.WriteLine(LocalFileName)
Dim WebFile As System.IO.FileStream
Dim Buffer As Byte()
Try
WebFile = New System.IO.FileStream(LocalFileName, FileMode.Open)
ReDim Buffer(WebFile.Length)
WebFile.Read(Buffer, 0, WebFile.Length)
WebFile.Close()
Catch err As System.Exception
Buffer = System.Text.Encoding.UTF32.GetBytes("
Page Non TrouvéePage non trouvée : " & LocalFileName & " : " & Context.User.Identity.Name & "")
End Try
Context.Response.ContentLength64 = Buffer.Length
Context.Response.OutputStream.Write(Buffer, 0, Buffer.Length)
Context.Response.Close()
Server.BeginGetContext(AddressOf ReceivingRequest, Server)
End Sub
End Module