Aracılığıyla paylaş


Socket.Connect Yöntem

Tanım

Uzak bir konakla bağlantı kurar.

Aşırı Yüklemeler

Name Description
Connect(EndPoint)

Uzak bir konakla bağlantı kurar.

Connect(IPAddress, Int32)

Uzak bir konakla bağlantı kurar. Ana bilgisayar bir IP adresi ve bağlantı noktası numarası ile belirtilir.

Connect(IPAddress[], Int32)

Uzak bir konakla bağlantı kurar. Ana bilgisayar bir IP adresleri dizisi ve bir bağlantı noktası numarası tarafından belirtilir.

Connect(String, Int32)

Uzak bir konakla bağlantı kurar. Konak, bir ana bilgisayar adı ve bağlantı noktası numarasıyla belirtilir.

Connect(EndPoint)

Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs

Uzak bir konakla bağlantı kurar.

public:
 void Connect(System::Net::EndPoint ^ remoteEP);
public void Connect(System.Net.EndPoint remoteEP);
member this.Connect : System.Net.EndPoint -> unit
Public Sub Connect (remoteEP As EndPoint)

Parametreler

remoteEP
EndPoint

EndPoint Uzak cihazı temsil eden bir.

Özel durumlar

remoteEP, null'e eşittir.

Yuvaya erişmeye çalışılırken bir hata oluştu.

Çağrı yığınında daha yüksek bir çağıranın istenen işlem için izni yok.

Socket çağrısıyla Listen(Int32)dinleme durumuna geçirilmiştir.

Örnekler

Aşağıdaki kod örneği uzak bir uç noktaya bağlanır ve bağlantıyı doğrular.

// .Connect throws an exception if unsuccessful
client.Connect(anEndPoint);

// This is how you can determine whether a socket is still connected.
bool blockingState = client.Blocking;
try
{
    byte [] tmp = new byte[1];

    client.Blocking = false;
    client.Send(tmp, 0, 0);
    Console.WriteLine("Connected!");
}
catch (SocketException e)
{
    // 10035 == WSAEWOULDBLOCK
    if (e.NativeErrorCode.Equals(10035))
    {
        Console.WriteLine("Still Connected, but the Send would block");
    }
    else
    {
        Console.WriteLine("Disconnected: error code {0}!", e.NativeErrorCode);
    }
}
finally
{
    client.Blocking = blockingState;
}

Console.WriteLine("Connected: {0}", client.Connected);
    ' .Connect throws an exception if unsuccessful
    client.Connect(anEndPoint)
    
    ' This is how you can determine whether a socket is still connected.
    Dim blockingState As Boolean = client.Blocking
    Try
        Dim tmp(0) As Byte
        
        client.Blocking = False
        client.Send(tmp, 0, 0)
        Console.WriteLine("Connected!")
    Catch e As SocketException
        ' 10035 == WSAEWOULDBLOCK
        If e.NativeErrorCode.Equals(10035) Then
            Console.WriteLine("Still Connected, but the Send would block")
        Else
            Console.WriteLine("Disconnected: error code {0}!", e.NativeErrorCode)
        End If
    Finally
        client.Blocking = blockingState
    End Try
    
    Console.WriteLine("Connected: {0}", client.Connected)

End Sub

Açıklamalar

TCP gibi bağlantı odaklı bir protokol kullanıyorsanız, Connect yöntemi ile belirtilen uzak uç nokta arasında LocalEndPoint zaman uyumlu bir ağ bağlantısı kurar. Bağlantısız bir protokol kullanıyorsanız, Connect varsayılan bir uzak konak oluşturur. çağrısı Connectyaptıktan sonra yöntemiyle Send uzak cihaza veri gönderebilir veya yöntemiyle uzak cihazdan Receive veri alabilirsiniz.

UDP gibi bağlantısız bir protokol kullanıyorsanız, veri göndermeden ve almadan önce arama Connect yapmanız gerekmez. uzak bir konakla zaman uyumlu bir şekilde iletişim kurmak için ve ReceiveFrom kullanabilirsinizSendTo. çağrısı Connectyaparsanız, belirtilen varsayılan dışında bir adresten gelen tüm veri birimleri atılır. Varsayılan uzak ana bilgisayarınızı bir yayın adresine ayarlamak istiyorsanız, önce yöntemini çağırmanız SetSocketOption ve yuva seçeneğini olarak SocketOptionName.Broadcastayarlamanız gerekir; aksi takdirde Connect bir SocketExceptionoluşturur. bir SocketExceptionalırsanız, özelliğini kullanarak SocketException.ErrorCode belirli bir hata kodunu alın. Bu kodu aldıktan sonra, hatanın ayrıntılı açıklaması için Windows Yuvaları sürüm 2 API hata kodu belgelerine bakın.

Connect özelliğini false çağırmadan Connectönce olarak ayarlamadığınız Blocking sürece yöntemi engellenir. TCP gibi bağlantı odaklı bir protokol kullanıyorsanız ve engellemeyi devre dışı bırakırsanız, Connect bağlantının yapılması için zamana ihtiyacı olduğundan bir SocketException oluşturur. Bağlantısız protokoller, yalnızca bir varsayılan uzak konak oluşturduklarından özel durum oluşturmaz. Belirli bir hata kodunu almak için kullanabilirsiniz SocketException.ErrorCode . Bu kodu aldıktan sonra, hatanın ayrıntılı açıklaması için Windows Yuvaları sürüm 2 API hata kodu belgelerine bakın. Hata WSAEWOULDBLOCK döndürdüyse, uzak konak bağlantısı bağlantı odaklı Socketbir tarafından başlatılmıştır ancak henüz başarıyla tamamlanmamıştır. bağlantısının Poll ne zaman Socket bittiğini belirlemek için yöntemini kullanın.

Uyarı

Bağlantı odaklı bir protokol kullanıyorsanız ve çağırmadan Connectönce çağırmadıysanızBind, temel alınan hizmet sağlayıcısı yerel ağ adresini ve bağlantı noktası numarasını atar. Bağlantısız bir protokol kullanıyorsanız, siz gönderme veya alma işlemini tamamlayana kadar hizmet sağlayıcısı yerel bir ağ adresi ve bağlantı noktası numarası atamaz. Varsayılan uzak konağı değiştirmek istiyorsanız, istenen uç noktayla yeniden çağırın Connect .

Uyarı

Yuvanın bağlantısı daha önce kesildiyse, bağlantıyı geri yüklemek için bu yöntemi kullanamazsınız. Yeniden bağlanmak için zaman uyumsuz BeginConnect yöntemlerden birini kullanın. Bu, temel alınan sağlayıcının bir sınırlamasıdır.

Uyarı

Bu üye, uygulamanızda ağ izlemeyi etkinleştirdiğinizde izleme bilgilerini döndürür. Daha fazla bilgi için bkz. .NET Framework'te Ağ İzleme.

Ayrıca bkz.

Şunlara uygulanır

Connect(IPAddress, Int32)

Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs

Uzak bir konakla bağlantı kurar. Ana bilgisayar bir IP adresi ve bağlantı noktası numarası ile belirtilir.

public:
 void Connect(System::Net::IPAddress ^ address, int port);
public void Connect(System.Net.IPAddress address, int port);
member this.Connect : System.Net.IPAddress * int -> unit
Public Sub Connect (address As IPAddress, port As Integer)

Parametreler

address
IPAddress

Uzak konağın IP adresi.

port
Int32

Uzak konağın bağlantı noktası numarası.

Özel durumlar

address, null'e eşittir.

Bağlantı noktası numarası geçerli değil.

Yuvaya erişmeye çalışılırken bir hata oluştu.

Bu yöntem veya InterNetworkV6 ailelerindeki InterNetwork yuvalar için geçerlidir.

Uzunluğu address sıfırdır.

Socket çağrısıyla Listen(Int32)dinleme durumuna geçirilmiştir.

Örnekler

Aşağıdaki kod örneği uzak bir uç noktaya bağlanır ve bağlantıyı doğrular.

// Synchronous connect using IPAddress to resolve the
// host name.
public static void Connect1(string host, int port)
{
    IPAddress[] IPs = Dns.GetHostAddresses(host);

    Socket s = new Socket(AddressFamily.InterNetwork,
        SocketType.Stream,
        ProtocolType.Tcp);

    Console.WriteLine("Establishing Connection to {0}",
        host);
    s.Connect(IPs[0], port);
    Console.WriteLine("Connection established");
}

Açıklamalar

TCP gibi bağlantı odaklı bir protokol kullanıyorsanız, Connect yöntemi ile belirtilen uzak uç nokta arasında LocalEndPoint zaman uyumlu bir ağ bağlantısı kurar. Bağlantısız bir protokol kullanıyorsanız, Connect varsayılan bir uzak konak oluşturur. Çağrısı Connect yaptıktan sonra yöntemiyle Send uzak cihaza veri gönderebilir veya yöntemiyle uzak cihazdan Receive veri alabilirsiniz.

UDP gibi bağlantısız bir protokol kullanıyorsanız, veri göndermeden ve almadan önce arama Connect yapmanız gerekmez. uzak bir konakla zaman uyumlu bir şekilde iletişim kurmak için ve ReceiveFrom kullanabilirsinizSendTo. Belirtilen varsayılandan farklı bir adresten gelen veri birimlerini çağırırsanız Connect atılır. Varsayılan uzak ana bilgisayarınızı bir yayın adresine ayarlamak istiyorsanız, önce yöntemini çağırmanız SetSocketOption ve yuva seçeneğini olarak SocketOptionName.Broadcastayarlamanız gerekir; aksi takdirde Connect bir SocketExceptionoluşturur. bir SocketExceptionalırsanız, özelliğini kullanarak SocketException.ErrorCode belirli bir hata kodunu alın. Bu kodu aldıktan sonra, hatanın ayrıntılı açıklaması için Windows Yuvaları sürüm 2 API hata kodu belgelerine bakın.

Connectyöntemi, özelliğini false çağırmadan Connectönce olarak ayarlamadığınız Blocking sürece engeller. TCP gibi bağlantı odaklı bir protokol kullanıyorsanız ve engellemeyi devre dışı bırakırsanız, Connect bağlantının yapılması için zamana ihtiyacı olduğundan bir SocketException oluşturur. Bağlantısız protokoller, yalnızca bir varsayılan uzak konak oluşturduklarından özel durum oluşturmaz. Belirli bir hata kodunu almak için kullanabilirsiniz SocketException.ErrorCode . Bu kodu aldıktan sonra, hatanın ayrıntılı açıklaması için Windows Yuvaları sürüm 2 API hata kodu belgelerine bakın. Hata WSAEWOULDBLOCK döndürdüyse, uzak konak bağlantısı bağlantı odaklı Socketbir tarafından başlatılmıştır ancak henüz başarıyla tamamlanmamıştır. bağlantısının Poll ne zaman Socket bittiğini belirlemek için yöntemini kullanın.

Uyarı

Bağlantı odaklı bir protokol kullanıyorsanız ve çağırmadan Connectönce çağırmadıysanızBind, temel alınan hizmet sağlayıcısı yerel ağ adresini ve bağlantı noktası numarasını atar. Bağlantısız bir protokol kullanıyorsanız, siz gönderme veya alma işlemini tamamlayana kadar hizmet sağlayıcısı yerel bir ağ adresi ve bağlantı noktası numarası atamaz. Varsayılan uzak konağı değiştirmek istiyorsanız, istenen uç noktayla yeniden çağırın Connect .

Uyarı

Yuvanın bağlantısı daha önce kesildiyse, bağlantıyı geri yüklemek için bu yöntemi kullanamazsınız. Yeniden bağlanmak için zaman uyumsuz BeginConnect yöntemlerden birini kullanın. Bu, temel alınan sağlayıcının bir sınırlamasıdır.

Uyarı

Bu üye, uygulamanızda ağ izlemeyi etkinleştirdiğinizde izleme bilgilerini döndürür. Daha fazla bilgi için bkz. .NET Framework'te Ağ İzleme.

Şunlara uygulanır

Connect(IPAddress[], Int32)

Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs

Uzak bir konakla bağlantı kurar. Ana bilgisayar bir IP adresleri dizisi ve bir bağlantı noktası numarası tarafından belirtilir.

public:
 void Connect(cli::array <System::Net::IPAddress ^> ^ addresses, int port);
public void Connect(System.Net.IPAddress[] addresses, int port);
member this.Connect : System.Net.IPAddress[] * int -> unit
Public Sub Connect (addresses As IPAddress(), port As Integer)

Parametreler

addresses
IPAddress[]

Uzak konağın IP adresleri.

port
Int32

Uzak konağın bağlantı noktası numarası.

Özel durumlar

addresses, null'e eşittir.

Bağlantı noktası numarası geçerli değil.

Yuvaya erişmeye çalışılırken bir hata oluştu.

Yuva veya InterNetwork ailelerinde InterNetworkV6 değil.

Uzunluğu addresses sıfırdır.

Socket çağrısıyla Listen(Int32)dinleme durumuna geçirilmiştir.

Örnekler

Aşağıdaki kod örneği uzak bir uç noktaya bağlanır ve bağlantıyı doğrular.

// Synchronous connect using Dns.GetHostAddresses to
// resolve the host name.
public static void Connect2(string host, int port)
{
    IPAddress[] IPs = Dns.GetHostAddresses(host);

    Socket s = new Socket(AddressFamily.InterNetwork,
        SocketType.Stream,
        ProtocolType.Tcp);
    Console.WriteLine("Establishing Connection to {0}",
        host);
    s.Connect(IPs, port);
    Console.WriteLine("Connection established");
}

Açıklamalar

Bu yöntem genellikle tek bir GetHostAddresseskonak için birden çok IP adresi döndürebilen çağrısının hemen ardından kullanılır. TCP gibi bağlantı odaklı bir protokol kullanıyorsanız, Connect yöntemi ile belirtilen uzak uç nokta arasında LocalEndPoint zaman uyumlu bir ağ bağlantısı kurar. Bağlantısız bir protokol kullanıyorsanız, Connect varsayılan bir uzak konak oluşturur. Çağrısı Connect yaptıktan sonra yöntemiyle Send uzak cihaza veri gönderebilir veya yöntemiyle uzak cihazdan Receive veri alabilirsiniz.

UDP gibi bağlantısız bir protokol kullanıyorsanız, veri göndermeden ve almadan önce arama Connect yapmanız gerekmez. uzak bir konakla zaman uyumlu bir şekilde iletişim kurmak için ve ReceiveFrom kullanabilirsinizSendTo. Belirtilen varsayılandan farklı bir adresten gelen veri birimlerini çağırırsanız Connect atılır. Varsayılan uzak ana bilgisayarınızı bir yayın adresine ayarlamak istiyorsanız, önce yöntemini çağırmanız SetSocketOption ve yuva seçeneğini olarak SocketOptionName.Broadcastayarlamanız gerekir; aksi takdirde Connect bir SocketExceptionoluşturur. bir SocketExceptionalırsanız, özelliğini kullanarak SocketException.ErrorCode belirli bir hata kodunu alın. Bu kodu aldıktan sonra, hatanın ayrıntılı açıklaması için Windows Yuvaları sürüm 2 API hata kodu belgelerine bakın.

Connectyöntemi, özelliğini false çağırmadan Connectönce olarak ayarlamadığınız Blocking sürece engeller. TCP gibi bağlantı odaklı bir protokol kullanıyorsanız ve engellemeyi devre dışı bırakırsanız, Connect bağlantının yapılması için zamana ihtiyacı olduğundan bir SocketException oluşturur. Bağlantısız protokoller, yalnızca bir varsayılan uzak konak oluşturduklarından özel durum oluşturmaz. Belirli bir hata kodunu almak için kullanabilirsiniz SocketException.ErrorCode . Bu kodu aldıktan sonra, hatanın ayrıntılı açıklaması için Windows Yuvaları sürüm 2 API hata kodu belgelerine bakın. Hata WSAEWOULDBLOCK döndürdüyse, uzak konak bağlantısı bağlantı odaklı Socketbir tarafından başlatılmıştır ancak henüz başarıyla tamamlanmamıştır. bağlantısının Poll ne zaman Socket bittiğini belirlemek için yöntemini kullanın.

Uyarı

Bağlantı odaklı bir protokol kullanıyorsanız ve çağırmadan Connectönce çağırmadıysanızBind, temel alınan hizmet sağlayıcısı yerel ağ adresini ve bağlantı noktası numarasını atar. Bağlantısız bir protokol kullanıyorsanız, siz gönderme veya alma işlemini tamamlayana kadar hizmet sağlayıcısı yerel bir ağ adresi ve bağlantı noktası numarası atamaz. Varsayılan uzak konağı değiştirmek istiyorsanız, istenen uç noktayla yeniden çağırın Connect .

Uyarı

Yuvanın bağlantısı daha önce kesildiyse, bağlantıyı geri yüklemek için bu yöntemi kullanamazsınız. Yeniden bağlanmak için zaman uyumsuz BeginConnect yöntemlerden birini kullanın. Bu, temel alınan sağlayıcının bir sınırlamasıdır.

Uyarı

Bu üye, uygulamanızda ağ izlemeyi etkinleştirdiğinizde izleme bilgilerini döndürür. Daha fazla bilgi için bkz. .NET Framework'te Ağ İzleme.

Şunlara uygulanır

Connect(String, Int32)

Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs

Uzak bir konakla bağlantı kurar. Konak, bir ana bilgisayar adı ve bağlantı noktası numarasıyla belirtilir.

public:
 void Connect(System::String ^ host, int port);
public void Connect(string host, int port);
member this.Connect : string * int -> unit
Public Sub Connect (host As String, port As Integer)

Parametreler

host
String

Uzak konağın adı.

port
Int32

Uzak konağın bağlantı noktası numarası.

Özel durumlar

host, null'e eşittir.

Bağlantı noktası numarası geçerli değil.

Yuvaya erişmeye çalışılırken bir hata oluştu.

Yuva veya InterNetwork ailelerinde InterNetworkV6 değil.

Socket çağrısıyla Listen(Int32)dinleme durumuna geçirilmiştir.

Örnekler

Aşağıdaki kod örneği uzak bir uç noktaya bağlanır ve bağlantıyı doğrular.

// Synchronous connect using host name (resolved by the
// Connect call.)
public static void Connect3(string host, int port)
{
    Socket s = new Socket(AddressFamily.InterNetwork,
        SocketType.Stream,
        ProtocolType.Tcp);

    Console.WriteLine("Establishing Connection to {0}",
        host);
    s.Connect(host, port);
    Console.WriteLine("Connection established");
}

Açıklamalar

TCP gibi bağlantı odaklı bir protokol kullanıyorsanız, Connect yöntemi ve belirtilen uzak konak arasında LocalEndPoint zaman uyumlu bir ağ bağlantısı kurar. Bağlantısız bir protokol kullanıyorsanız, Connect varsayılan bir uzak konak oluşturur. Çağrısı Connect yaptıktan sonra yöntemiyle Send uzak cihaza veri gönderebilir veya yöntemiyle uzak cihazdan Receive veri alabilirsiniz.

UDP gibi bağlantısız bir protokol kullanıyorsanız, veri göndermeden ve almadan önce arama Connect yapmanız gerekmez. uzak bir konakla zaman uyumlu bir şekilde iletişim kurmak için ve ReceiveFrom kullanabilirsinizSendTo. Belirtilen varsayılandan farklı bir adresten gelen veri birimlerini çağırırsanız Connect atılır. Varsayılan uzak ana bilgisayarınızı bir yayın adresine ayarlamak istiyorsanız, önce yöntemini çağırmanız SetSocketOption ve yuva seçeneğini olarak SocketOptionName.Broadcastayarlamanız gerekir; aksi takdirde Connect bir SocketExceptionoluşturur. bir SocketExceptionalırsanız, özelliğini kullanarak SocketException.ErrorCode belirli bir hata kodunu alın. Bu kodu aldıktan sonra, hatanın ayrıntılı açıklaması için Windows Yuvaları sürüm 2 API hata kodu belgelerine bakın.

Connect özelliğini false çağırmadan Connectönce olarak ayarlamadığınız Blocking sürece yöntemi engellenir. TCP gibi bağlantı odaklı bir protokol kullanıyorsanız ve engellemeyi devre dışı bırakırsanız, Connect bağlantının yapılması için zamana ihtiyacı olduğundan bir SocketException oluşturur. Bağlantısız protokoller, yalnızca bir varsayılan uzak konak oluşturduklarından özel durum oluşturmaz. Belirli bir hata kodunu almak için kullanabilirsiniz SocketException.ErrorCode . Bu kodu aldıktan sonra, hatanın ayrıntılı açıklaması için Windows Yuvaları sürüm 2 API hata kodu belgelerine bakın. Hata WSAEWOULDBLOCK döndürdüyse, uzak konak bağlantısı bağlantı odaklı Socketbir tarafından başlatılmıştır ancak henüz başarıyla tamamlanmamıştır. bağlantısının Poll ne zaman Socket bittiğini belirlemek için yöntemini kullanın.

IPv6 etkinse ve Connect(String, Int32) yöntemi hem IPv6 hem de IPv4 adreslerine çözümlenen bir konağa bağlanmak için çağrılırsa, önce IPv4 adresinden önce IPv6 adresiyle bağlantı denenecektir. Bu, ana bilgisayar IPv6 adresini dinlemiyorsa bağlantı kurma süresini geciktirme etkisine neden olabilir.

Uyarı

Bağlantı odaklı bir protokol kullanıyorsanız ve çağırmadan Connectönce aramadıysanızBind, temel hizmet sağlayıcısı yerel ağ adresini ve bağlantı noktası numarasını atar. Bağlantısız bir protokol kullanıyorsanız, siz gönderme veya alma işlemini tamamlayana kadar hizmet sağlayıcısı yerel bir ağ adresi ve bağlantı noktası numarası atamaz. Varsayılan uzak konağı değiştirmek istiyorsanız, istenen uç noktayla yeniden çağırın Connect .

Uyarı

Yuvanın bağlantısı daha önce kesildiyse, bağlantıyı geri yüklemek için bu yöntemi kullanamazsınız. Yeniden bağlanmak için zaman uyumsuz BeginConnect yöntemlerden birini kullanın. Bu, temel alınan sağlayıcının bir sınırlamasıdır.

Uyarı

Bu üye, uygulamanızda ağ izlemeyi etkinleştirdiğinizde izleme bilgilerini döndürür. Daha fazla bilgi için bkz. .NET Framework'te Ağ İzleme.

Şunlara uygulanır