现在需要写一个.net消息推送服务(和公告表) 一直运行起的,如果客户端有网连接上服务,推送服务就判断客户端穿过来的用户名和密码是否正确,正确的话就把该人的消息推送过去,
但是怎么怎么写获取客户端穿过来的用户名和密码,如何有很多客户端同时连接上怎么写同时推送代码,以下是一些代码还需要怎么写?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Net.Sockets;
using System.Threading;namespace testConsole
{
    public class Program
    {
        static List<TcpClient> tcpClients;
        static void Main(string[] args)
        {
            tcpClients = new List<TcpClient>();
            ThreadPool.QueueUserWorkItem(StartAspNetListen);
            ThreadPool.QueueUserWorkItem(StartServer);
            //ThreadPool.QueueUserWorkItem(test1);
            Console.Read();
        }
        private static void StartServer(object state)
        {
            TcpListener server = null;
            try
            {
                // Set the TcpListener on port 5222.
                Int32 port = 5222;                server = new TcpListener(IPAddress.Any, port);                server.Start();                while (true)
                {                    TcpClient client = server.AcceptTcpClient();
                    tcpClients.Add(client);
                    IPEndPoint ip = (IPEndPoint)client.Client.RemoteEndPoint;                    var AdrFamily = ip.AddressFamily.ToString();//地址类型
                    var IpStr = ip.Address.ToString();//IP地址点分表达方式
                    var IpPort = ip.Port.ToString();//IP地址端口号
                    Console.WriteLine("Connected!" + IpStr + ":" + IpPort);                    var nStream = client.GetStream();
                    var bytes = System.Text.Encoding.ASCII.GetBytes("hello " + IpStr + ":" + IpPort);
                    nStream.Write(bytes, 0, bytes.Length);
                    nStream.Flush();
                    //nStream.Close();
                }
            }
            catch (SocketException e)
            {
                Console.WriteLine("SocketException: {0}", e);
            }
            finally
            {
                server.Stop();
            }
            Console.WriteLine("\nHit enter to continue...");
            Console.Read();
        }        private static void StartAspNetListen(object state)
        {
            TcpListener server = null;
            try
            {
                Int32 port = 5221;                server = new TcpListener(IPAddress.Any, port);                server.Start();                Byte[] bytes = new Byte[256];
                while (true)
                {
                    Console.Write("Waiting for a connection... ");                    TcpClient client = server.AcceptTcpClient();
                    Console.WriteLine("Connected!");                    NetworkStream stream = client.GetStream();                    int c;                    c = stream.Read(bytes, 0, bytes.Length);
                    {                        if (tcpClients.Count > 0)
                        {
                            for (int i = 0; i < tcpClients.Count; i++)
                            {
                                if (tcpClients[i].Connected)
                                {
                                    try
                                    {
                                        NetworkStream s = tcpClients[i].GetStream();
                                        s.Write(bytes, 0, c);
                                        s.Flush();
                                    }
                                    catch (Exception)
                                    {
                                        tcpClients.RemoveAt(i);
                                        i--;
                                    }
                                }
                                else
                                {
                                    tcpClients.RemoveAt(i);
                                    i--;
                                }
                            }                        }
                        client.Close();
                    }                }
            }
            catch (SocketException e)
            {
                Console.WriteLine("SocketException: {0}", e);
            }
            finally
            {
                server.Stop();
            }        }        private static void test1(object state)
        {
            TcpListener server = null;
            try
            {
                Int32 port = 13000;                server = new TcpListener(IPAddress.Any, port);                server.Start();                Byte[] bytes = new Byte[256];
                String data = null;
 
                while (true)
                {
                    Console.Write("Waiting for a connection... ");                    TcpClient client = server.AcceptTcpClient();
                    Console.WriteLine("Connected!");                    NetworkStream stream = client.GetStream();                    while (client.Connected)
                    {
                        try
                        {
                            // Process the data sent by the client.
                            data = DateTime.Now.ToString();                            byte[] msg = System.Text.Encoding.ASCII.GetBytes(data);                            // Send back a response.
                            stream.Write(msg, 0, msg.Length);
                            stream.Flush();
                            Console.WriteLine("Sent: {0}", data);
                            Thread.Sleep(3000);
                        }
                        catch (Exception)
                        {
                            break;
                        }
                    }
                }
            }
            catch (SocketException e)
            {
                Console.WriteLine("SocketException: {0}", e);
            }
            finally
            {
                
                server.Stop();
            }
            Console.WriteLine("\nHit enter to continue...");
            Console.Read();
        }
    }
}