我有两个项目客户端和服务器。服务器是一个使用HttpListener并在特定端口上侦听的.net项目。现在,我希望从另一个使用Javascript的项目向此侦听端口发送一些消息。客户端没有访问服务器。
我尝试使用telnet连接并且打开了黑屏,因此打开了端口并正在监听。 我不知道如何向该监听端口发送消息。出于测试目的,我尝试使用netstat,但是我不知道该命令的正确性。
客户:
var xhr = new XMLHttpRequest();
var url = "https://localhost:49215";
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
var json = JSON.parse(xhr.responseText);
console.log(json.email + ", " + json.password);
}
};
var data = JSON.stringify({ "email": "test@mail.com", "password": "****" });
xhr.send(data);
服务器:
HttpListener listener = new HttpListener();
GetListenerOnFreePort(out listener, out port);
while (true)
{
try
{
var context = listener.GetContext(); //Block until a connection comes in
context.Response.StatusCode = 200;
context.Response.SendChunked = true;
int totalTime = 0;
while (true)
{
if (totalTime % 3000 == 0)
{
var bytes = Encoding.UTF8.GetBytes(new string('3', 1000) + "\n");
context.Response.OutputStream.Write(bytes, 0, bytes.Length);
}
if (totalTime % 5000 == 0)
{
var bytes = Encoding.UTF8.GetBytes(new string('5', 1000) + "\n");
context.Response.OutputStream.Write(bytes, 0, bytes.Length);
}
Thread.Sleep(1000);
totalTime += 1000;
}
}
catch (Exception)
{
// Client disconnected or some other error - ignored for this example
}
}