创建TCPClient给我异常

时间:2013-04-09 13:45:11

标签: c# sockets exception tcpclient

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.Net.Sockets;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
        IPEndPoint ip = new IPEndPoint(Dns.GetHostAddresses("localhost")[0],8080);
        List<TcpClient> TCPs = new List<TcpClient>();
        int i = 1;
            while (true) {
                Console.Write(i + " ");
                /* the exception's row */ TCPs.Add(new TcpClient(ip));
                i++;
            }
        }
    }
}

给我这个例外:

 An attempt was made to access a socket in a way forbidden by its access permissions.

1 个答案:

答案 0 :(得分:2)

您不能多次绑定到同一个端口。由于您的while(true)循环,您会一遍又一遍地创建新的TcpClient。您创建的第一个将获取端口8080,第二个将失败并出现此异常。

来自docs

  

在调用此构造函数之前,必须使用要从中发送和接收数据的IP地址和端口号创建IPEndPoint。

通常在创建客户端时无需设置端口。