由于其权限,无法访问套接字

时间:2011-12-18 21:44:52

标签: c# sockets tcp

我在Windows 7上使用C#和visual studio 2010 只是尝试一个简单的服务器/客户端示例来了解类似于2周的套接字编程但是昨天当我开始调试时我得到了这个异常(尝试以其访问权限禁止的方式访问套接字)。即使我已经关闭防火墙和防病毒。加上检查安全选项卡并设置完全信任。

我读了许多文章说我们不能在Windows 7上使用TCP,但它工作正常!它仍然有效,我只需要重新启动计算机。但每次我需要运行时重新启动都不是解决方案。

任何想法??

更新

static void Main(string [] args)
    {
        Program progDomain = new Program();
        progDomain.clients = new List<ClientManager>();

        if ( args.Length == 0 )
        {
            progDomain.serverPort = 8000;
            progDomain.serverIP = IPAddress.Any;
        }
        if ( args.Length == 1 )
        {
            progDomain.serverIP = IPAddress.Parse(args [0]);
            progDomain.serverPort = 8000;
        }
        if ( args.Length == 2 )
        {
            progDomain.serverIP = IPAddress.Parse(args [0]);
            progDomain.serverPort = int.Parse(args [1]);
        }

        progDomain.bwListener = new BackgroundWorker();
        progDomain.bwListener.WorkerSupportsCancellation = true;
        progDomain.bwListener.DoWork += new DoWorkEventHandler(progDomain.StartToListen);
        progDomain.bwListener.RunWorkerAsync();

        Console.WriteLine("*** Listening on port {0}{1}{2} started.Press ENTER to shutdown server. ***\n",progDomain.serverIP.ToString(),":",progDomain.serverPort.ToString());

        Console.ReadLine();

        progDomain.DisconnectServer();
    }

    private void StartToListen(object sender , DoWorkEventArgs e)
    {
        this.listenerSocket = new Socket(AddressFamily.InterNetwork , SocketType.Stream , ProtocolType.Tcp);
        this.listenerSocket.Bind(new IPEndPoint(this.serverIP , this.serverPort));
        this.listenerSocket.Listen(200);
        while ( true )
            this.CreateNewClientManager(this.listenerSocket.Accept());
    }

这是异常触发的代码段。没什么,因为它从一开始就发射。

1 个答案:

答案 0 :(得分:1)

与评论中的内容一样,请查看TcpListener课程。那堂课让你的生活更轻松。