当前位置: 首页 > 知识库问答 >
问题:

每个套接字地址(协议/网络地址/端口)通常只允许使用一次?

尹承泽
2023-03-14
class Program
    {
        private static string ServerName = "";
        private static string UserName = "";
        private static string Password = "";
        private static string dbConnectionSring = "";
        private static X509Certificate adminCertificate;
        private  static byte[] readBuffer = new byte[4096];
        static void Main(string[] args)
        {
            Console.WriteLine("Please grant SQL Server access to the Admin Server:\n");
            Console.Write("Server Name: ");
            ServerName = Console.ReadLine();
            Console.Write("\nUser Name: ");
            UserName = Console.ReadLine();
            Console.Write("\nPassword: ");
            Password = PasswordMasker.Mask(Password);
            dbConnectionSring = SQLServerAccess.CreateConnection(ServerName, UserName, Password);
            adminCertificate = Certificate.GenerateOrImportCertificate("AdminCert.pfx", "randomPassword");
            try
            {
                Console.WriteLine("Initializing server on the WildCard address on port 443...");
                TcpListener listener = new TcpListener(IPAddress.Any, 443);
                try
                {
                    Console.WriteLine("Starting to listen at {0}: 443...", IPAddress.Any);

                    //the backlog is set to the maximum integer value, but the underlying network stack will reset this value to its internal maximum value
                    listener.Start(int.MaxValue);
                    Console.WriteLine("Listening... Waiting for a client to connect...");
                    int ConnectionCount = 0;

                    while (true)
                    {
                        try
                        {

                            listener.BeginAcceptTcpClient(new AsyncCallback(AcceptCallback), listener);
                            ConnectionCount++;
                            Console.WriteLine(
                                " Accepted connection #" + ConnectionCount.ToString());


                        }
                        catch (SocketException err)
                        {
                            Console.WriteLine("Accept failed: {0}", err.Message);
                        }
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Listening failed to start.");
                    listener.Stop();

                    Console.WriteLine(ex.Message);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Initialiazing server Failed.");
                Console.WriteLine(ex.Message);
            }
        }

我会非常感谢你的帮助!

共有1个答案

祁渊
2023-03-14

>

  • 我打开CMD并键入:netstat-a
  • 我查看了“本地地址”列。
  • 我查看了端口部分。
  • 我看到我的程序中的端口在另一个程序中已经处于活动状态(正在使用)。
  • 我将程序中的端口更改为其他端口。

    奏效了!

    非常感谢:@DavidSchwartz、@Gusman

  •  类似资料:
    • 问题内容: 我正在尝试用python创建一个非常基本的服务器,该服务器侦听端口,在客户端尝试连接时创建TCP连接,接收数据,发回一些东西,然后再次侦听(并无限地重复该过程)。这是我到目前为止所拥有的: 有时,这似乎工作得很好(如果我将浏览器指向“ localhost:4444”,则服务器将打印出HTTP GET请求,而网页将显示文本“ hello world”)。但是当我在最后几分钟关闭服务器后尝

    • 这就是我有点困惑的地方。 我在服务器端拿到的地址,有客户端连接的WiFi网络的公有地址(这是我预期的),还有一些端口号,基于我对NATs的理解,应该和客户端实际使用的端口号不一样,是用来翻译地址的。 但是,如果我在客户端上使用了getsockname()函数,则得到的端口号与服务器给出的端口号相同。

    • 问题内容: 如何仅使用 proc 获得所有网络接口的(IPv4)地址?经过广泛的调查,我发现了以下内容: 使用,需要打开套接字并充分了解所有接口名称。在Linux上的任何手册页中也没有记录。 包含,但这是接口统计信息的列表。 包含,这正是我需要的,但需要IPv6。 通常,在中很容易找到接口,但是很少使用实际地址,除非在某些连接中有明确的一部分。 有一个名为的系统调用,这是Windows所期望的非常

    • 注意:v2 API差异:现有.proto地址结构。 Pipe SocketAddress SocketAddress.Protocol (Enum) BindConfig Address CidrRange Pipe Pipe proto { "path": "..." } path (string, REQUIRED) Unix域套接字路径。 SocketAddress SocketAdd

    • 我的第一篇文章,所以请温柔一点;)我必须修改一些现有的专注于java.net.网络接口的软件。以前所有的接口都列在一个组合框中,用户必须选择一个。现在不仅可以选择接口,还可以选择这个接口附带的一个特定的ip地址。由于许多代码都是基于网络接口类的,我在想是否有可能通过将现有网络接口拆分为ip地址来“创建”一些新的网络接口。这可能吗?我知道,我不能创建一个新的网络接口。但是也许还有另一个选择,我现在看

    • 问题内容: 我想获取启动程序的计算机的IP地址,然后将其发送到客户端,但是我总是得到0.0.0.1而不是真实的IP地址(例如127.0.0.1)。 我目前可以获取端口,但无法获取IP地址。 我怎么才能得到它? 最好的解决方案是能够使用。这是我目前正在做的事情: 编辑: 我知道我的思维方式走错了路。所以我的问题是:获得自己的IP地址的最佳方法是什么? 问题答案: 当您将套接字设为0.0.0.0时,这