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?