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.
答案 0 :(得分:2)
您不能多次绑定到同一个端口。由于您的while(true)
循环,您会一遍又一遍地创建新的TcpClient
。您创建的第一个将获取端口8080,第二个将失败并出现此异常。
来自docs:
在调用此构造函数之前,必须使用要从中发送和接收数据的IP地址和端口号创建IPEndPoint。
通常在创建客户端时无需设置端口。