Использование HttpWebRequest для отправки HTML в браузер - PullRequest
0 голосов
/ 15 января 2010

как я могу отправить сообщение обратно в браузер или локальный хост, например, если я хочу отобразить сообщение с именем .... Это тест в браузере.

using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Text;

class MyTcpListener
{
    public static void Main()
    {


     try
     {

        // Set the TcpListener on port 13000.
            Int32 port = 80;
            IPAddress localAddr = IPAddress.Parse("127.0.0.1");

            // TcpListener server = new TcpListener(port);
            TcpListener server = new TcpListener(localAddr, port);

            // Start listening for client requests.
            server.Start();

            // Buffer for reading data
            Byte[] bytes = new Byte[256];
            String data = null;

            // Enter the listening loop.
            while (true)
            {
                Console.Write("Waiting for a connection... ");

                // Perform a blocking call to accept requests.
                // You could also user server.AcceptSocket() here.
                TcpClient client = server.AcceptTcpClient();
                Console.WriteLine("Connected!");

                data = null;

                // Get a stream object for reading and writing
                NetworkStream stream = client.GetStream();

                int i;

                // Loop to receive all the data sent by the client.
                while ((i = stream.Read(bytes, 0, bytes.Length)) != 0)
                {
                    // Translate data bytes to a ASCII string.
                    data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
                    Console.WriteLine(String.Format("Received: {0}", data));

                    // Process the data sent by the client.
                    data = data.ToUpper();

                    byte[] msg = System.Text.Encoding.ASCII.GetBytes(data);

                    // Send back a response.
                    stream.Write(msg, 0, msg.Length);
                    Console.WriteLine("Sending message..");

                 }

                // Shutdown and end connection
                client.Close();
            }
        }
        catch (SocketException e)
        {
            Console.WriteLine("SocketException: {0}", e);
        }

        Console.WriteLine("\nHit enter to continue...");
        Console.Read();
    }
}

Ответы [ 3 ]

1 голос
/ 15 января 2010
using(StreamWriter sw = new StreamWriter(stream))
{
    sw.Write("<html><body>Hello There!</body></html>");
}

Это должно записать HTML в выходной поток. Не забудьте закрыть поток после этого. А также закройте TcpClient.

0 голосов
/ 15 января 2010

Вместо чтения, пока вы не получите 0 байтов, вы должны читать, пока не найдете пустую строку.Вызов Read () для последнего бита открытого сетевого подключения просто блокируется, пока браузер не отправит больше данных (чего не будет, потому что он отправил все и ожидает вас).

0 голосов
/ 15 января 2010

Это скорее консольное приложение, чем веб-сайт, поэтому выходные данные, сгенерированные в операторах Console.WriteLine, будут отправляться на консоль отладки, если вы запускаете ее в Visual Studio, или они должны отображаться на экране, если вы запускаете ее как скомпилированное приложение из командной строки.

Какого рода проект это часть?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...