一个用HTTP接收用户发送数据的服务器,接收到数据后处理然后在返回处理结果,怎样做到为每个用户启动一个新的线程呢?下边是我的代码,但这样不行.
              private   void   button1_Click(object   sender,   EventArgs   e)
                {
                        try
                        {
                                threadListen   =   new   Thread(new   ThreadStart(listen));
                                threadListen.Start();
                        }
                        catch   (Exception   e1)
                        {
                                MessageBox.Show(e1.Message);
                        }
                }                private   void   listen()
                {
                        try
                        {
                                tcpListener   =   new   TcpListener(port);
                                //开始监听客户请求
                                tcpListener.Start();
                                while   (true)
                                {
                                        //获得一个用户处理用户请求的套接字
                                        client   =   tcpListener.AcceptTcpClient();
                                        //启动处理用户请求信息的线程
                                        threadService   =   new   Thread(new   ThreadStart(service));
                                        threadService.Start();
                                        threadService.Join();
                                }
                        }
                        catch   (SocketException   e)
                        {
                                MessageBox.Show("SocketException   :"   +   e.ToString());
                        }
                        finally
                        {
                                tcpListener.Stop();
                        }
                }
                private   void   service()
                {
                        Byte[]   bytes   =   new   Byte[1024];
                        StringBuilder   sData   =   new   StringBuilder();
                        //获得一个用于读写操作的流
                        NetworkStream   stream   =   client.GetStream();                        int   i;
                        lock   (this)
                        {
                                try
                                {
                                        do
                                        {
                                                i   =   stream.Read(bytes,   0,   bytes.Length);
                                                //转换数据字节成字符串  
                                                sData.Append(System.Text.Encoding.UTF8.GetString(bytes,   0,   i));
                                        }
                                        while(stream.DataAvailable);
                                        //这里做数据处理....                                        //发送回复
                                        byte[]   msg   =   System.Text.Encoding.UTF8.GetBytes("OK");
                                        stream.Write(msg,   0,   msg.Length);
                                }
                                catch   (Exception   e)
                                {
                                        MessageBox.Show(e.Message);
                                }
                                finally
                                {
                                        client.Close();
                                }
                        }
                }