Я настроил сервер VB. NET, но он отвечает только на запросы от своего собственного хоста. Если я пытаюсь отправить запрос с другого компьютера (в той же сети), он не отвечает на запрос, он просто истекает. Мое приложение в основном прослушивает запрос на порт 1212
, затем делает снимок экрана и отправляет ответ обратно.
Я пытался использовать оба параметра http://*:1212/
и http://+:1212/
, но это работает, только если я выполню запрос из компьютер, на котором размещен сервер.
С хоста это работает http://192.168.1.150:1212/
С другого компьютера в сети это не работает http://192.168.1.150:1212/
(время ожидания запроса)
Вот мое заявление
Imports System.IO
Imports System.Net
Imports System.Text
Imports System.Threading
Public Class Form1
Private t As New Thread(AddressOf IncomingMessage)
Private Const bufferSize As Integer = 1024 * 512
Dim prefixes(0), Port, UserIP, UserIPPort As String
Dim isWorking As Boolean = False
' From1_Load()
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Control.CheckForIllegalCrossThreadCalls = False
prefixes(0) = "http://*:1212/"
With t
If (.ThreadState And ThreadState.Unstarted) <> 0 Then
.IsBackground = True
.Start()
End If
End With
End Sub
' IncomingMessage()
Private Sub IncomingMessage()
Bgn:
If prefixes(0) Is Nothing OrElse prefixes(0).Length = 0 Then
Throw New ArgumentException("prefixes")
End If
Dim listener As HttpListener = New HttpListener()
For Each s As String In prefixes
listener.Prefixes.Add(s)
Next
Try
listener.Start()
Dim numRequestsToBeHandled As Integer = 10
For i As Integer = 0 To numRequestsToBeHandled
Dim response As HttpListenerResponse = Nothing
Dim context As HttpListenerContext = listener.GetContext()
Dim sr As StreamReader = New StreamReader(context.Request.InputStream)
Dim URLRequestClient As String = sr.ReadToEnd()
MessageBox.Show(URLRequestClient)
Dim bmp As Bitmap = ScreenCap()
bmp.Save(Application.StartupPath & "\screenshot.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)
bmp.Dispose()
context.Response.ContentType = "image/jpeg"
Dim buffer = New Byte(bufferSize - 1) {}
Using fs = File.OpenRead(Application.StartupPath & "\screenshot.jpg")
context.Response.ContentLength64 = fs.Length
Dim read As Integer
While (InlineAssignHelper(read, fs.Read(buffer, 0, buffer.Length))) > 0
context.Response.OutputStream.Write(buffer, 0, read)
End While
End Using
context.Response.OutputStream.Close()
Next
GoTo Bgn
End Sub