как установить таймаут для сокета c# - PullRequest
0 голосов
/ 04 апреля 2020

Здесь клиентское соединение, которое работает нормально. Я пробую несколько орудий для тайм-аута и сбоя (создайте исключение и закройте сокет, если клиент не может успешно подключиться к серверу. Мой код:

 public void connect(string IP, int port)
        {
            try
            {

                IPHostEntry host = Dns.GetHostEntry(ip);
                IPAddress ipAddress = host.AddressList[0];
                IPEndPoint remoteEP = new IPEndPoint(ipAddress, port);


                sender = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);


                try
                {
                    // Connect to Remote EndPoint  
                    sender.Connect(remoteEP);

                    Console.WriteLine("Socket connected to {0}", sender.RemoteEndPoint.ToString());
                }
                catch (Exception e)
                {
                    Console.WriteLine("Unexpected exception : {0}", e.ToString());
                }

            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }

1 Ответ

0 голосов
/ 04 апреля 2020

Это можно решить с помощью метода Socket.ConnectAsyn c и таймера, см .:

{ ссылка }

В качестве альтернативы:

{ ссылка }

...