Example #1
0
        private Thread CreateAndStartConnectThread(EndPointLocation location)
        {
            Thread thread = new Thread(ConnectToEndPoint)
            {
                Name = string.Format("{0} connect to {1}.", id, location)
            };

            thread.Start(location);
            return(thread);
        }
Example #2
0
        private void ConnectToEndPoint(object param)
        {
            EndPointLocation location = (EndPointLocation)param;
            IPEndPoint       endPoint = endPoints[location];

            try
            {
                EndPoint localEndPoint = GetLocalEndPoint();
                if (localEndPoint == null)
                {
                    return;
                }

                outgoingSockets[location] = CreateAddressReuseSocket();
                outgoingSockets[location].Bind(localEndPoint);

                Log("Connecting to {0} ({1})...", location, endPoint);
                outgoingSockets[location].Connect(endPoint);
                Authenticate(outgoingSockets[location]);
            }
            catch (SocketException e)
            {
                Log("Connect to {0} failed: {1}", location, e.Message);
            }
            catch (ObjectDisposedException e)
            {
                Log("Outgoing to {0} socket disposed: {1}", location, e.Message);
            }
            finally
            {
                if (outgoingSockets[location] != null)
                {
                    outgoingSockets[location].Close();
                }
            }

            Log("Connect to {0} thread exiting.", location);
        }
Example #3
0
 private Thread CreateAndStartConnectThread(EndPointLocation location)
 {
     Thread thread = new Thread(ConnectToEndPoint)
     {
         Name = string.Format("{0} connect to {1}.", id, location)
     };
     thread.Start(location);
     return thread;
 }