許可のためソケットにアクセスできない

私はWindows 7でVisual Studio 2010でC#を使用しています

私はデバッグを開始した昨日のような2週間のソケットプログラミングについて学ぶためにシンプルなサーバー/クライアントの例を試してみましたが、私はこの例外を受け取りました(アクセス許可で禁止されている方法でソケットにアクセスしようとしました)。私はファイアウォールとアンチウィルスを無効にしています。セキュリティタブをチェックし、完全な信頼を設定してください。

私は多くの記事を読んで、Windows 7ではTCPを使用できないと言っていましたが、問題なく動作していました!それはまだ動作します、私はちょうどコンピュータを再起動する必要があります。実行する必要があるたびに再起動するのは解決策ではありません。

何か案は??

更新:

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

        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
@rekireローカルホスト:8000
追加された 著者 Katia,
@rekireなぜあなたはこの例外に対してTcpListenerが必要なのですか?またはそれは一般的なアドバイスです:)
追加された 著者 Katia,
私はパラメータなしで実行しているので、値はありません。 if(args.Length == 0)...テストにデフォルト値を使用します。
追加された 著者 Katia,
@ありがとう、ありがとう。ソケットプログラミングについて学ぶことはまだまだたくさんあると思います。
追加された 著者 Katia,
どのポートを使用していますか?
追加された 著者 rekire,
また、TcpListenerクラスを使用することもできます。
追加された 著者 rekire,
ちょうど一般的です。私はそのクラスを使用し、その問題はありません。私は自分のtcpサーバを頻繁に再起動することができます。私は問題なく好きです:-) @sarnold Rubyは分かりませんが、実際には最初の引数です。
追加された 著者 rekire,
args [0] の値は何ですか?それはCスタイルのプログラム名ですか?それとも、Rubyスタイルの最初の "議論"ですか?
追加された 著者 sarnold,
使用しているコードを提供できますか?
追加された 著者 M.Babcock,

1 答え

コメントに書かれているように、 TcpListener クラスをチェックしてください。そのクラスはあなたの人生を簡単にします。

1
追加された