Beste allemaal,
Graag zou ik in mijn (bestaande) Windows Form Applicatie een simpele webserver maken zodat uiteindelijk de code die nu achter "button1" zit (en je dus alleen op de PC waar je de Form-applicatie draait kunt starten) ook via een andere computer in het netwerk gestart kan worden door middel van het browsen naar een bepaalde URL.
Ik kwam tijdens mijn zoektocht dit stukje code tegen:
bron: https://stackoverflow.com...-posts-simple-http-server
En dat werkt in principe al vrij aardig
Maar er zijn 2 "probleempjes"
1. In m'n Form-app komt nu steeds de melding *reageert niet*
2. Nu werkt de webserver zo, dat als ik naar http://192.168.1.212:8080/HttpListener/ ga, de tijd wordt weergegeven in de browser:
Hoe los ik puntje 1 op? En hoe maak ik puntje 2?
(ik denk zelf dat het "probleem" in punt 1 ontstaat omdat ik nu een Form gebruik, terwijl in het voorbeeld een Module wordt gebruikt zonder "Form" waar iets op kan gaan vasthangen)
Wie heeft er raad?
Graag zou ik in mijn (bestaande) Windows Form Applicatie een simpele webserver maken zodat uiteindelijk de code die nu achter "button1" zit (en je dus alleen op de PC waar je de Form-applicatie draait kunt starten) ook via een andere computer in het netwerk gestart kan worden door middel van het browsen naar een bepaalde URL.
Ik kwam tijdens mijn zoektocht dit stukje code tegen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
| Imports System.Net
Imports System.Globalization
Module HttpListener
Sub Main()
Dim prefixes(0) As String
prefixes(0) = "http://*:8080/HttpListener/"
ProcessRequests(prefixes)
End Sub
Private Sub ProcessRequests(ByVal prefixes() As String)
If Not System.Net.HttpListener.IsSupported Then
Console.WriteLine( _
"Windows XP SP2, Server 2003, or higher is required to " & _
"use the HttpListener class.")
Exit Sub
End If
' URI prefixes are required,
If prefixes Is Nothing OrElse prefixes.Length = 0 Then
Throw New ArgumentException("prefixes")
End If
' Create a listener and add the prefixes.
Dim listener As System.Net.HttpListener = _
New System.Net.HttpListener()
For Each s As String In prefixes
listener.Prefixes.Add(s)
Next
Try
' Start the listener to begin listening for requests.
listener.Start()
Console.WriteLine("Listening...")
' Set the number of requests this application will handle.
Dim numRequestsToBeHandled As Integer = 10
For i As Integer = 0 To numRequestsToBeHandled
Dim response As HttpListenerResponse = Nothing
Try
' Note: GetContext blocks while waiting for a request.
Dim context As HttpListenerContext = listener.GetContext()
' Create the response.
response = context.Response
Dim responseString As String = _
"<HTML><BODY>The time is currently " & _
DateTime.Now.ToString( _
DateTimeFormatInfo.CurrentInfo) & _
"</BODY></HTML>"
Dim buffer() As Byte = _
System.Text.Encoding.UTF8.GetBytes(responseString)
response.ContentLength64 = buffer.Length
Dim output As System.IO.Stream = response.OutputStream
output.Write(buffer, 0, buffer.Length)
Catch ex As HttpListenerException
Console.WriteLine(ex.Message)
Finally
If response IsNot Nothing Then
response.Close()
End If
End Try
Next
Catch ex As HttpListenerException
Console.WriteLine(ex.Message)
Finally
' Stop listening for requests.
listener.Close()
Console.WriteLine("Done Listening...")
End Try
End Sub
End Module |
bron: https://stackoverflow.com...-posts-simple-http-server
En dat werkt in principe al vrij aardig
Maar er zijn 2 "probleempjes"
1. In m'n Form-app komt nu steeds de melding *reageert niet*
2. Nu werkt de webserver zo, dat als ik naar http://192.168.1.212:8080/HttpListener/ ga, de tijd wordt weergegeven in de browser:
Maar wat ik wil is dat als iemand naar die URL gaat, met daar bijvoorbeeld achter "?=test" dat er bijvoorbeeld een MsgBox met "test" erin verschijnt in de Form-App. (dit dus om te "bewijzen" dat ik dynamische strings kan doorsturen zodat ik daar later vanalles mee kan doen in de Form-App).The time is currently 27-6-2020 14:22:12
Hoe los ik puntje 1 op? En hoe maak ik puntje 2?
(ik denk zelf dat het "probleem" in punt 1 ontstaat omdat ik nu een Form gebruik, terwijl in het voorbeeld een Module wordt gebruikt zonder "Form" waar iets op kan gaan vasthangen)
Wie heeft er raad?