0
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.
4

1 回答 1

2

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

来自文档

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

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

于 2013-04-09T13:52:37.850 回答