日期:2014-05-17  浏览次数:21109 次

c#网络编程报错"通常每个套接字地址(协议/网络地址/端口)史允许使用一次"
说细描述:程序在最开始启动监听都可以正常运行,但是当点击停止监听,再次启动监听时就报错 “通常每个套接字地址(协议/网络地址/端口)史允许使用一次",主要代码如下:
  Thread myThread;
        private void buttonStart_Click(object sender, EventArgs e)
        {
            //由于服务器要为多个客户服务,所以需要创建一个线程监听客户端连接请求
            try
            {
                ThreadStart ts = new ThreadStart(AcceptConnect);
                myThread = new Thread(ts);
                myThread.Start();
                buttonStart.Enabled = false;
                buttonStop.Enabled = true;
            }
            catch(Exception Ex)
            {
                listBoxStatus.Invoke(setListBoxCallBack, Ex.Message);
            }
        }

        private void AcceptConnect()
        {
            //获取本机所有IP地址
            try
            {
                IPAddress[] ip = Dns.GetHostAddresses("192.168.0.35");
                listener = new TcpListener(ip[0], 51888);
                listener.Start();                                           //开始侦听传入的连接请求
                while (isExit == false)
                {
                    try
                    {
                        //将事件的状态设为非终止
                        allDone.Reset();