Je cherchais une solution sérieuse sur google et je reçois seulement des "solutions de Régisrty" genre de choses que je ne pense même pas reliées à mon problème.Une seule utilisation de chaque adresse de socket (protocole/adresse réseau/port) est normalement autorisée?
Pour une raison quelconque j'obtiens cette erreur, alors que je ne lance le TcpListner qu'une seule fois, et quand + si échoue j'arrête le serveur. Je ne comprends vraiment pas. Voici mon code:
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);
}
}
J'apprécie vraiment votre aide!
Le problème est un autre programme est déjà à l'écoute sur ce port ... – Gusman
Vous pouvez essayer soit un autre port ou la liaison à une adresse IP locale spécifique adresse plutôt que chacun d'eux. –
@DavidSchwartz comment puis-je savoir quels ports sont libres d'utiliser? – WeinForce