Это может быть кусок пирога для любого опытного разработчика C #
Здесь вы видите образец асинхронного веб-сервера
using System;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.Threading;
namespace SimpleServer
{
class Program
{
public static void ReceiveCallback(IAsyncResult AsyncCall)
{
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
Byte[] message = encoding.GetBytes("I am a little busy, come back later!");
Socket listener = (Socket)AsyncCall.AsyncState;
Socket client = listener.EndAccept(AsyncCall);
Console.WriteLine("Received Connection from {0}", client.RemoteEndPoint);
client.Send(message);
Console.WriteLine("Ending the connection");
client.Close();
listener.BeginAccept(new AsyncCallback(ReceiveCallback), listener);
}
public static void Main()
{
try
{
IPAddress localAddress = IPAddress.Parse("127.0.0.1");
Socket listenSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint ipEndpoint = new IPEndPoint(localAddress, 8080);
listenSocket.Bind(ipEndpoint);
listenSocket.Listen(1);
listenSocket.BeginAccept(new AsyncCallback(ReceiveCallback), listenSocket);
while (true)
{
Console.WriteLine("Busy Waiting....");
Thread.Sleep(2000);
}
}
catch (Exception e)
{
Console.WriteLine("Caught Exception: {0}", e.ToString());
}
}
}
Я загрузил его из Интернета, чтобы базовая модель работала на.
В основном мне нужно запустить этот веб-сервер как процесс на компьютере. Он будет все время слушать por 8080, и когда клиентский компьютер отправляет запрос, этот сервер обрабатывает некоторые данные и отправляет результат в виде строки.
Я создал небольшой проект с этим кодом (который работает как есть), но когда он выполняет строку
client.Send(message);
, все, что я получаю, - это ошибка в браузере или, самое большее, пустая страница
. Я подозреваю, что мне нужно определить заголовки HTTP для отправки с (сообщением), но Я безуспешно искал это в Интернете
Кто-нибудь хочет помочь?
Спасибо!