服务器代码: 
class Program
    {
        private static byte[]message=new byte[1024];
        private static Socket serverSocket;
        private static Int32 iPort = 8888;        private static List<User> userList = new List<User>();        static void Main(string[] args)
        {
            IPAddress ip = IPAddress.Any;
            serverSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
            serverSocket.Bind(new IPEndPoint(ip, iPort));
            serverSocket.Listen(Int32.MaxValue);
            Console.WriteLine("启动监听{0}成功",serverSocket.LocalEndPoint.ToString());            Thread acceptThread = new Thread(AcceptConnect);
            acceptThread.Start();
        }        public static void AcceptConnect()
        { 
            Socket newClient = null;
            while (true)
            {
               
                newClient = serverSocket.Accept();
                User user = new User(newClient);                               Thread threadReceive = new Thread(ReceiveMessage);
                threadReceive.Start(user);                userList.Add(user);
            }
        
        }        public static void ReceiveMessage(object userState)
        {
            User user = (User)userState;             while (true)
             {
                Int32 receiveNum = user.client_socket.Receive(message);                String receiveString = null;
                receiveString = Encoding.ASCII.GetString(message, 0, receiveNum);                String[] splitString = receiveString.Split(',');
                Console.WriteLine("接收客户端{0}消息{1}", user.UserName, receiveString);                switch (splitString[0].ToLower())
                {
                    case "login":
                        {
                            user.UserName = splitString[1];
                            Console.WriteLine("新连接{0}进入...", user.UserName);
                            SendMessageToAllClient(user, receiveString);
                        } break;
                    case "logout":
                        {
                            SendMessageToAllClient(user, receiveString);
                            userList.Remove(user);
                        } break;
                    default:
                        {
                            for (Int32 i = 0; i < userList.Count; i++)
                            {
                                 if (userList[i].UserName == splitString[0])
                                 {
                                    SendToClient(userList[i], splitString[1]);                                }
                            }
                        } break;
                }
            
            }
          
        }        public static void SendMessageToAllClient(User user,String message)
        {            
            if (message.Split(',')[0].ToLower() == "login")
            {
                for (Int32 i = 0; i < userList.Count; i++)
                {
                    SendToClient(user, "login," + userList[i].UserName);                }                for (Int32 i = 0; i < userList.Count; i++)
                {
                    if (userList[i].UserName != user.UserName)
                    {
                        SendToClient(userList[i], "login," + user.UserName);
                    }
                }
            }
            else if (message.Split(',')[0].ToLower() == "logout")
            {
                for (Int32 i = 0; i < userList.Count; i++)
                {
                    if (userList[i].UserName != user.UserName)
                    {
                        SendToClient(userList[i], "logout," + user.UserName);
                    }                }
            }
                    }        public static void SendToClient(User user, String message)
        {
            user.client_socket.Send(Encoding.ASCII.GetBytes(message));
        }
    }客户端代码:
 public partial class Form1 : Form
    {        private static Socket clientSocket;
        private static Int32 iPort = 8888;
        private static byte[]message=new byte[1024];        public Form1()
        {
            InitializeComponent();
            Random rd = new Random((Int32)DateTime.Now.Ticks);
            TB_USERNAME.Text = rd.Next(1, 1000).ToString();
        }        private void B_SEND_Click(object sender, EventArgs e)
        {
            clientSocket.Send(Encoding.ASCII.GetBytes(TB_USERNAME.Text +","+ TB_CHAT.Text));
        }        private void B_LOGIN_Click(object sender, EventArgs e)
        {
            B_LOGIN.Enabled = false;
            try
            {
                IPAddress ip = IPAddress.Parse("127.0.0.1");
                clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                clientSocket.Connect(ip, iPort);                clientSocket.Send(Encoding.ASCII.GetBytes("Login,"+ TB_USERNAME.Text));                LB_CHAT_INFO.Items.Add("连接成功....");                Thread receiveThread = new Thread(new ThreadStart(ReceiveMessage));
                receiveThread.IsBackground = true;
                receiveThread.Start();            }
            catch (System.Exception ex)
            {
                LB_CHAT_INFO.Items.Add("连接失败....");
                B_LOGIN.Enabled = true;
            }
           
        }        public void ReceiveMessage()
        {
            while (true)
            {
                Int32 receiveNum = clientSocket.Receive(message);
                String receiveString = Encoding.ASCII.GetString(message);
                string[] splitString = receiveString.Split(',');                switch (splitString[0])
                {
                    case "login":
                        {
                            AddUser(splitString[1]);                        } break;
                    case "logout":
                        {
                            RemoveUser(splitString[1]);
                        } break;
                    default:
                        {
                            AddChat(receiveString);
                        } break;
                }
            }
         
            
        }
        private delegate void AddChatDelegate(String message);        public void AddChat(String message)
        {
            if (LB_CHAT_INFO.InvokeRequired)
            {
                AddChatDelegate d = AddChat;
                LB_CHAT_INFO.Invoke(d, message);
            }
            else
            {
                LB_CHAT_INFO.Items.Add(message);
            }        }        private delegate void AddUserDelegate(String name);        public void AddUser(String name)
        {
            if (LB_USER_ONLINE.InvokeRequired)
            {
                AddUserDelegate d = AddUser;
                LB_USER_ONLINE.Invoke(d,name);
            }
            else
            {
                LB_USER_ONLINE.Items.Add(name);
            }
          
        }        private delegate void RemoveUserDelegate(String name);        public void RemoveUser(String name)
        {
            if (LB_USER_ONLINE.InvokeRequired)
            {
                AddUserDelegate d = RemoveUser;
                LB_USER_ONLINE.Invoke(d, name);
            }
            else
            {
                LB_USER_ONLINE.Items.Remove(name);
            }        }
    }为什么后面连接进入的User,看不到前面的User