C # Async Webserver - как отправлять данные клиенту

Это может быть кусок пирога для любого опытного разработчика 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 для отправки с (сообщением), но Я безуспешно искал это в Интернете

Кто-нибудь хочет помочь?

Спасибо!

5
задан msarchet 9 March 2011 в 15:10
поделиться