How to use WCF instead of manual C # using tcplistenr?

I have the following code and wondered if it is possible to move it to WCF?

Basically, I listen to smtp messages on some port and use the thread pool to parse each tcp connection.

static void Main(string[] args)
{
    try
    {
    TcpListener listener = new TcpListener(IPAddress.Any, 8000);
    TcpClient client;
    listener.Start();

    while (true) // Add your exit flag here
    {
        client = listener.AcceptTcpClient();
        ThreadPool.QueueUserWorkItem(ThreadProc, client);
    }
    }
    catch (Exception ex)
    {
    Console.WriteLine(ex.Message);
    Console.ReadLine();
    }

}//Main


private static void ThreadProc(object obj)
{
    var client = (TcpClient)obj;
    // Do your work here...

    NetworkStream ns = client.GetStream();

    using (StreamWriter writer = new StreamWriter(ns))
    {
       writer.WriteLine("220 SMTP server ready.");
       writer.Flush();

       using (StreamReader reader = new StreamReader(ns))
       {
          //parse + persist smtp message here...
       }
    }
}//ThreadProc
+3
source share

All Articles