我在写服务器端的时候出现了这些问题,大家帮帮忙看看是什么问题,急!!!
代码如下:using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net.Sockets;
using System.Threading;
using System.Net;namespace 服务器_Server
{
    /// <summary>
    /// 服务器:
    /// delegate:委托的关键字
    /// ThreadStart:当运行此方法时,该方法中的参数只要输入方法名称即可(如ThreadStart(StartListenint))
    /// </summary>
    public partial class Server : Form
    {
        private const int maxPacket = 64 * 1024;//接收数据缓存区的大小64K
        private TcpListener _tcp;//从Tcp网络客户端侦听连接
        private Socket clientSocket;//套接字接口
        private Thread clientService;//创建并控制线程,设置其优先级并获取其状态
        private IPEndPoint listenPort;//将网络端点表示为IP地址和端口号 
        delegate void setTextString(string str);
              public Server()
        {
            InitializeComponent();
        }
        /// <summary>
        /// 关闭监听器
        /// </summary>
        public void listenClose()
        {
            if (_tcp != null)//判断监听器是否为空
            {
                _tcp.Stop();//关闭监听器
            }
        }        private void Form1_Load(object sender, EventArgs e)
        {
            
        }        /// <summary>
        /// 监听的单击事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnMonitor_Click(object sender, EventArgs e)
        {
            string portParam;
            //MessageBox.Show("请输入监听端口","提示",MessageBoxButtons.OK,MessageBoxIcon.Asterisk);
            portParam = txtServePort.Text.Trim();
            if (portParam != string.Empty)//判断输入的端口是否为空
            {                if (int.Parse(portParam) < 1023 || int.Parse(portParam) > 65535)
                {
                    MessageBox.Show("端口号输入不合法,请重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    txtServePort.Clear();
                    txtServePort.Focus();
                }
                else 
                {
                    try
                    {
                        listenPort = new IPEndPoint(IPAddress.Any, Convert.ToInt32(portParam));//将IpEndPoint实例化                        Socket serverSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);                        //serverSocket.Bind(listenPort);
                        //serverSocket.Listen(100);
                        //serverSocket.BeginAccept(new AsyncCallback),                        Thread thr = new Thread(new ThreadStart(StartListening));//ThreadState:表示在线程上执行的方法
                        thr.Start();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }
            }
        }        /// <summary>
        /// 开始监听的方法
        /// </summary>
        /// <returns></returns>
        private void StartListening()
        {
            _tcp = new TcpListener(listenPort);//实例化侦听连接并将所要监听的端口号以及IP放入侦听连接中
            setText("IP:"+Convert.ToString(listenPort)+"\r\n");
            _tcp.Start();
            MessageBox.Show("服务器已启动......");
            while (true)
            {
                try
                {
                    Socket s = _tcp.AcceptSocket();
                    clientSocket = s;
                    clientService = new Thread(new ThreadStart(ServiceClient));//创建线程,并用ThreadStart执行ServiceClient这个方法
                    clientService.Start();//让该线程进行运行
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }        /// <summary>
        /// 服务器客户端连接
        /// </summary>
        /// <returns></returns>
        private void ServiceClient()
        {
            Socket client = clientSocket;
            bool keepalive = true;
            while (keepalive)
            {
                byte[] buffer = new Byte[60];
                client.Receive(buffer);//接收数据将其写入buffer
                string clientCommand = byteToHexStr(buffer);
                clientCommand += "\r\n";
                setText(clientCommand);
            }
        }        /// <summary>
        /// 将buffer中所接收的数据转化为字符串
        /// </summary>
        /// <param name="buffer"></param>
        /// <returns></returns>
        private string byteToHexStr(byte[] buffer)
        {
            string returnStr = "";
            if (buffer != null)
            {
                for (int i = 0; i <buffer.Length; i++)
                {
                    returnStr += buffer[i].ToString("X2") + "";
                }
            }
            return returnStr;
        }        /// <summary>
        /// 获取值将该值赋给txtShow让其显示出来
        /// </summary>
        /// <param name="p"></param>
        private void setText(string str)
        {
            if (txtShow.InvokeRequired)
            {
                setTextString sts = new setTextString(setText);//把setText方法进行委托一下
                Invoke(sts, new object[] { str });//Invoke:在拥有控件的基础窗口句柄的线程上,用指定的参数列表执行指定委托
            }
            else
            {
                txtShow.Text += str;
            }
        }        /// <summary>
        /// 发送的单击事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnServerSend_Click(object sender, EventArgs e)
        {
            Socket cli = clientSocket;
            string str=txtInput.Text.Trim();
            SendToClient(cli,str);
        }        /// <summary>
        /// 向客户端发送数据的方法
        /// </summary>
        /// <param name="cli"></param>
        /// <param name="str"></param>
        private static void SendToClient(Socket cli,string str)
        {
            Byte[] sendBytes = System.Text.Encoding.UTF8.GetBytes(str.ToCharArray());//ToCharArray:将此实例中的字符复制到Unicode字符数组
            cli.Send(sendBytes);
        }        /// <summary>
        /// 窗体关闭事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Server_FormClosing(object sender, FormClosingEventArgs e)
        {
            listenClose();
        }
    }
}问题(如图):