Socket.ConnectAsync Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Uzak bir ana bilgisayara bağlantı için zaman uyumsuz bir istek başlatır.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs, ConnectAlgorithm) | |
| ConnectAsync(String, Int32, CancellationToken) |
Uzak bir konakla bağlantı kurar. |
| ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs) |
Uzak bir ana bilgisayara bağlantı için zaman uyumsuz bir istek başlatır. |
| ConnectAsync(IPAddress[], Int32, CancellationToken) |
Uzak bir konakla bağlantı kurar. |
| ConnectAsync(IPAddress, Int32, CancellationToken) |
Uzak bir konakla bağlantı kurar. |
| ConnectAsync(String, Int32) |
Uzak bir konakla bağlantı kurar. |
| ConnectAsync(IPAddress[], Int32) |
Uzak bir konakla bağlantı kurar. |
| ConnectAsync(IPAddress, Int32) |
Uzak bir konakla bağlantı kurar. |
| ConnectAsync(EndPoint, CancellationToken) |
Uzak bir konakla bağlantı kurar. |
| ConnectAsync(SocketAsyncEventArgs) |
Uzak bir ana bilgisayara bağlantı için zaman uyumsuz bir istek başlatır. |
| ConnectAsync(EndPoint) |
Uzak bir konakla bağlantı kurar. |
ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs, ConnectAlgorithm)
public:
static bool ConnectAsync(System::Net::Sockets::SocketType socketType, System::Net::Sockets::ProtocolType protocolType, System::Net::Sockets::SocketAsyncEventArgs ^ e, System::Net::Sockets::ConnectAlgorithm connectAlgorithm);
public static bool ConnectAsync(System.Net.Sockets.SocketType socketType, System.Net.Sockets.ProtocolType protocolType, System.Net.Sockets.SocketAsyncEventArgs e, System.Net.Sockets.ConnectAlgorithm connectAlgorithm);
static member ConnectAsync : System.Net.Sockets.SocketType * System.Net.Sockets.ProtocolType * System.Net.Sockets.SocketAsyncEventArgs * System.Net.Sockets.ConnectAlgorithm -> bool
Public Shared Function ConnectAsync (socketType As SocketType, protocolType As ProtocolType, e As SocketAsyncEventArgs, connectAlgorithm As ConnectAlgorithm) As Boolean
Parametreler
- socketType
- SocketType
- protocolType
- ProtocolType
- connectAlgorithm
- ConnectAlgorithm
Döndürülenler
Şunlara uygulanır
ConnectAsync(String, Int32, CancellationToken)
- Kaynak:
- Socket.Tasks.cs
- Kaynak:
- Socket.Tasks.cs
- Kaynak:
- Socket.Tasks.cs
- Kaynak:
- Socket.Tasks.cs
Uzak bir konakla bağlantı kurar.
public:
System::Threading::Tasks::ValueTask ConnectAsync(System::String ^ host, int port, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.ValueTask ConnectAsync(string host, int port, System.Threading.CancellationToken cancellationToken);
member this.ConnectAsync : string * int * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask
Public Function ConnectAsync (host As String, port As Integer, cancellationToken As CancellationToken) As ValueTask
Parametreler
- host
- String
Bağlanacak uzak konağın ana bilgisayar adı.
- port
- Int32
Bağlanacak uzak konak üzerindeki bağlantı noktası.
- cancellationToken
- CancellationToken
Zaman uyumsuz işlemi iptal etmek için kullanılabilecek bir iptal belirteci.
Döndürülenler
Bağlantı kurulduğunda tamamlanan zaman uyumsuz bir görev.
Özel durumlar
host Parametre null olamaz.
Dinliyor Socket .
Yuva veya InterNetworkV6 ailelerinde InterNetwork değil.
Yuvaya erişmeye çalışılırken bir hata oluştu.
Kapatılmış Socket .
Çağrı yığınında daha yüksek bir çağıranın istenen işlem için izni yok.
İptal belirteci iptal edildi. Bu özel durum, döndürülen görevde depolanır.
Açıklamalar
Bu yöntem, yöntemin zaman uyumlu karşılık geleninin oluşturabileceği tüm kullanım dışı özel durumları döndürdüğü görevde depolar. Döndürülen görevde bir özel durum depolanırsa, görev beklendiğinde bu özel durum oluşturulur. ArgumentExceptiongibi kullanım özel durumları hâlâ eşzamanlı olarak fırlatılır. Depolanan özel durumlar için tarafından Connect(String, Int32)oluşan özel durumlara bakın.
Şunlara uygulanır
ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
Uzak bir ana bilgisayara bağlantı için zaman uyumsuz bir istek başlatır.
public:
static bool ConnectAsync(System::Net::Sockets::SocketType socketType, System::Net::Sockets::ProtocolType protocolType, System::Net::Sockets::SocketAsyncEventArgs ^ e);
public static bool ConnectAsync(System.Net.Sockets.SocketType socketType, System.Net.Sockets.ProtocolType protocolType, System.Net.Sockets.SocketAsyncEventArgs e);
static member ConnectAsync : System.Net.Sockets.SocketType * System.Net.Sockets.ProtocolType * System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Shared Function ConnectAsync (socketType As SocketType, protocolType As ProtocolType, e As SocketAsyncEventArgs) As Boolean
Parametreler
- socketType
- SocketType
Değerlerden SocketType biri.
- protocolType
- ProtocolType
Değerlerden ProtocolType biri.
SocketAsyncEventArgs Bu zaman uyumsuz yuva işlemi için kullanılacak nesne.
Döndürülenler
true G/Ç işlemi bekliyorsa.
Completed parametresindeki e olay, işlem tamamlandıktan sonra tetiklenir.
false G/Ç işlemi zaman uyumlu olarak tamamlandıysa. Bu durumda, Completed parametredeki e olay tetiklenmez ve e parametre olarak geçirilen nesne, yöntem çağrısı işlemin sonucunu almak için döndürdükten hemen sonra incelenebilir.
Özel durumlar
Bağımsız değişken geçerli değil. Birden çok arabellek belirtilirse, özellik null değilse bu BufferList özel durum oluşur.
e Parametre null olamaz ve RemoteEndPoint null olamaz.
Socket dinliyor veya parametresinde e belirtilen nesne kullanılarak SocketAsyncEventArgs bir yuva işlemi zaten devam ediyor.
Yuvaya erişmeye çalışılırken bir hata oluştu.
Yerel uç nokta ve aynı RemoteEndPoint adres ailesi değildir.
Kapatılmış Socket .
Çağrı yığınında daha yüksek bir çağıranın istenen işlem için izni yok.
Açıklamalar
Bağlantı odaklı bir protokol kullanıyorsanız, M:System.Net.Sockets.Socket.ConnectAsync(System.Net.Sockets.SocketType,System.Net.Sockets.ProtocolType,System.Net.Sockets.SocketAsyncEventArgs) yöntemi uzak ana bilgisayara bağlantı için zaman uyumsuz bir istek başlatır. Bağlantısız bir protokol kullanıyorsanız ve ConnectAsyncprotocolType parametreleri tarafından socketType belirtilen varsayılan bir uzak konak oluşturur.
Tamamlanma bildirimi almak için EventHandler<SocketAsyncEventArgs> temsilcisini uygulayan bir geri çağırma yöntemi oluşturmanız ve geri çağırmayı SocketAsyncEventArgs.Completed olaya eklemeniz gerekir.
Çağıranın SocketAsyncEventArgs.RemoteEndPoint özelliğini IPEndPoint bağlanacak uzak konağın değerine ayarlaması gerekir.
Çağıran, yöntemi çağırmadan ConnectAsync önce istenen herhangi bir kullanıcı durumu nesnesine özelliğini ayarlayabilirSocketAsyncEventArgs.UserToken, böylece bilgiler geri çağırma yönteminde alınabilir. Geri çağırma için tek bir nesneden daha fazla bilgi gerekiyorsa, gerekli diğer durum bilgilerini üye olarak tutmak için küçük bir sınıf oluşturulabilir.
UDP gibi bağlantısız bir protokol kullanıyorsanız, veri göndermeden ve almadan önce arama ConnectAsync yapmanız gerekmez. uzak bir konakla iletişim kurmak için ve ReceiveFromAsync kullanabilirsinizSendToAsync. çağrısı ConnectAsyncyaparsanız, belirtilen varsayılan dışında bir adresten gelen tüm veri birimleri atılır. Varsayılan uzak konağı değiştirmek istiyorsanız, istenen uç noktayla yöntemini yeniden çağırın ConnectAsync .
Varsayılan uzak konağı bir yayın adresi olarak ayarlamak istiyorsanız, önce Yayın'ı çağırıp SetSocketOption olarak trueayarlamanız gerekir. Bu yapılmazsa, ConnectAsync yöntemi bir SocketExceptionoluşturur.
Nesnede System.Net.Sockets.SocketAsyncEventArgs aşağıdaki özellikler ve olaylar gereklidir:
İsteğe bağlı olarak, yöntem başarılı olduktan sonra ConnectAsync yuvaya atomik olarak gönderilecek bir arabellek sağlanabilir. Bu durumda, özelliğin SocketAsyncEventArgs.Buffer gönderilecek verileri içeren arabelleğe ayarlanması ve özelliğin SocketAsyncEventArgs.Count arabellekten gönderilecek veri bayt sayısına ayarlanması gerekir. Bağlantı kurulduktan sonra bu veri arabelleği gönderilir.
Bağlantı odaklı bir protokol kullanıyorsanız ve çağırmadan ConnectAsyncönce aramıyorsanızBind, temel alınan hizmet sağlayıcısı en uygun yerel ağ adresini ve bağlantı noktası numarasını atar.
Bağlantısız bir protokol kullanıyorsanız, veya ReceiveAsync yöntemlerini çağırana SendAsync kadar hizmet sağlayıcısı yerel bir ağ IP adresi ve bağlantı noktası numarası atamaz.
ConnectAsync yöntemi, ve'nin SocketSocketAsyncEventArgs.RemoteEndPoint adres ailesi aynı adres ailesi değilse oluştururNotSupportedException.
Uyarı
Bu yöntemi çağırırken bir SocketException alırsanız, belirli bir hata kodunu almak için özelliğini kullanın 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.
Şunlara uygulanır
ConnectAsync(IPAddress[], Int32, CancellationToken)
- Kaynak:
- Socket.Tasks.cs
- Kaynak:
- Socket.Tasks.cs
- Kaynak:
- Socket.Tasks.cs
- Kaynak:
- Socket.Tasks.cs
Uzak bir konakla bağlantı kurar.
public:
System::Threading::Tasks::ValueTask ConnectAsync(cli::array <System::Net::IPAddress ^> ^ addresses, int port, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.ValueTask ConnectAsync(System.Net.IPAddress[] addresses, int port, System.Threading.CancellationToken cancellationToken);
member this.ConnectAsync : System.Net.IPAddress[] * int * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask
Public Function ConnectAsync (addresses As IPAddress(), port As Integer, cancellationToken As CancellationToken) As ValueTask
Parametreler
- addresses
- IPAddress[]
Uzak ana bilgisayara bağlanmayı denerken kullanılacak uzak ana bilgisayar için IPAddresses listesi.
- port
- Int32
Bağlanacak uzak konak üzerindeki bağlantı noktası.
- cancellationToken
- CancellationToken
Zaman uyumsuz işlemi iptal etmek için kullanılabilecek bir iptal belirteci.
Döndürülenler
Bağlantı kurulduğunda tamamlanan zaman uyumsuz bir görev.
Özel durumlar
addresses Parametre null olamaz.
addresses Parametresi boş dizi olamaz.
Dinliyor Socket .
Yuva veya InterNetworkV6 ailelerinde InterNetwork değil.
Yuvaya erişmeye çalışılırken bir hata oluştu.
Kapatılmış Socket .
Çağrı yığınında daha yüksek bir çağıranın istenen işlem için izni yok.
İptal belirteci iptal edildi. Bu özel durum, döndürülen görevde depolanır.
Açıklamalar
Bu yöntem, yöntemin zaman uyumlu karşılık geleninin oluşturabileceği tüm kullanım dışı özel durumları döndürdüğü görevde depolar. Döndürülen görevde bir özel durum depolanırsa, görev beklendiğinde bu özel durum oluşturulur. ArgumentExceptiongibi kullanım özel durumları hâlâ eşzamanlı olarak fırlatılır. Depolanan özel durumlar için tarafından Connect(IPAddress[], Int32)oluşan özel durumlara bakın.
Şunlara uygulanır
ConnectAsync(IPAddress, Int32, CancellationToken)
- Kaynak:
- Socket.Tasks.cs
- Kaynak:
- Socket.Tasks.cs
- Kaynak:
- Socket.Tasks.cs
- Kaynak:
- Socket.Tasks.cs
Uzak bir konakla bağlantı kurar.
public:
System::Threading::Tasks::ValueTask ConnectAsync(System::Net::IPAddress ^ address, int port, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.ValueTask ConnectAsync(System.Net.IPAddress address, int port, System.Threading.CancellationToken cancellationToken);
member this.ConnectAsync : System.Net.IPAddress * int * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask
Public Function ConnectAsync (address As IPAddress, port As Integer, cancellationToken As CancellationToken) As ValueTask
Parametreler
- address
- IPAddress
Bağlanacak uzak konağın IPAddress'i.
- port
- Int32
Bağlanacak uzak konak üzerindeki bağlantı noktası.
- cancellationToken
- CancellationToken
Zaman uyumsuz işlemi iptal etmek için kullanılabilecek bir iptal belirteci.
Döndürülenler
Bağlantı kurulduğunda tamamlanan zaman uyumsuz bir görev.
Özel durumlar
address Parametre null olamaz.
Dinliyor Socket .
Yuvaya erişmeye çalışılırken bir hata oluştu.
Kapatılmış Socket .
Çağrı yığınında daha yüksek bir çağıranın istenen işlem için izni yok.
İptal belirteci iptal edildi. Bu özel durum, döndürülen görevde depolanır.
Açıklamalar
Bu yöntem, yöntemin zaman uyumlu karşılık geleninin oluşturabileceği tüm kullanım dışı özel durumları döndürdüğü görevde depolar. Döndürülen görevde bir özel durum depolanırsa, görev beklendiğinde bu özel durum oluşturulur. ArgumentExceptiongibi kullanım özel durumları hâlâ eşzamanlı olarak fırlatılır. Depolanan özel durumlar için tarafından Connect(IPAddress, Int32)oluşan özel durumlara bakın.
Şunlara uygulanır
ConnectAsync(String, Int32)
- Kaynak:
- Socket.Tasks.cs
- Kaynak:
- Socket.Tasks.cs
- Kaynak:
- Socket.Tasks.cs
- Kaynak:
- Socket.Tasks.cs
Uzak bir konakla bağlantı kurar.
public:
System::Threading::Tasks::Task ^ ConnectAsync(System::String ^ host, int port);
public System.Threading.Tasks.Task ConnectAsync(string host, int port);
member this.ConnectAsync : string * int -> System.Threading.Tasks.Task
Public Function ConnectAsync (host As String, port As Integer) As Task
Parametreler
- host
- String
Bağlanacak uzak konağın ana bilgisayar adı.
- port
- Int32
Bağlanacak uzak konak üzerindeki bağlantı noktası.
Döndürülenler
Bağlantı kurulduğunda tamamlanan zaman uyumsuz bir görev.
Özel durumlar
host Parametre null olamaz.
Dinliyor Socket .
Yuva veya InterNetworkV6 ailelerinde InterNetwork değil.
Yuvaya erişmeye çalışılırken bir hata oluştu.
Kapatılmış Socket .
Çağrı yığınında daha yüksek bir çağıranın istenen işlem için izni yok.
Açıklamalar
Bu yöntem, yöntemin zaman uyumlu karşılık geleninin oluşturabileceği tüm kullanım dışı özel durumları döndürdüğü görevde depolar. Döndürülen görevde bir özel durum depolanırsa, görev beklendiğinde bu özel durum oluşturulur. ArgumentExceptiongibi kullanım özel durumları hâlâ eşzamanlı olarak fırlatılır. Depolanan özel durumlar için tarafından Connect(String, Int32)oluşan özel durumlara bakın.
Şunlara uygulanır
ConnectAsync(IPAddress[], Int32)
- Kaynak:
- Socket.Tasks.cs
- Kaynak:
- Socket.Tasks.cs
- Kaynak:
- Socket.Tasks.cs
- Kaynak:
- Socket.Tasks.cs
Uzak bir konakla bağlantı kurar.
public:
System::Threading::Tasks::Task ^ ConnectAsync(cli::array <System::Net::IPAddress ^> ^ addresses, int port);
public System.Threading.Tasks.Task ConnectAsync(System.Net.IPAddress[] addresses, int port);
member this.ConnectAsync : System.Net.IPAddress[] * int -> System.Threading.Tasks.Task
Public Function ConnectAsync (addresses As IPAddress(), port As Integer) As Task
Parametreler
- addresses
- IPAddress[]
Uzak ana bilgisayara bağlanmayı denerken kullanılacak uzak ana bilgisayar için IPAddresses listesi.
- port
- Int32
Bağlanacak uzak konak üzerindeki bağlantı noktası.
Döndürülenler
Bağlantı kurulduğunda tamamlanan zaman uyumsuz bir görev.
Özel durumlar
addresses Parametre null olamaz.
addresses Parametresi boş dizi olamaz.
Dinliyor Socket .
Yuva veya InterNetworkV6 ailelerinde InterNetwork değil.
Yuvaya erişmeye çalışılırken bir hata oluştu.
Kapatılmış Socket .
Çağrı yığınında daha yüksek bir çağıranın istenen işlem için izni yok.
Açıklamalar
Bu yöntem, yöntemin zaman uyumlu karşılık geleninin oluşturabileceği tüm kullanım dışı özel durumları döndürdüğü görevde depolar. Döndürülen görevde bir özel durum depolanırsa, görev beklendiğinde bu özel durum oluşturulur. ArgumentExceptiongibi kullanım özel durumları hâlâ eşzamanlı olarak fırlatılır. Depolanan özel durumlar için tarafından Connect(IPAddress[], Int32)oluşan özel durumlara bakın.
Şunlara uygulanır
ConnectAsync(IPAddress, Int32)
- Kaynak:
- Socket.Tasks.cs
- Kaynak:
- Socket.Tasks.cs
- Kaynak:
- Socket.Tasks.cs
- Kaynak:
- Socket.Tasks.cs
Uzak bir konakla bağlantı kurar.
public:
System::Threading::Tasks::Task ^ ConnectAsync(System::Net::IPAddress ^ address, int port);
public System.Threading.Tasks.Task ConnectAsync(System.Net.IPAddress address, int port);
member this.ConnectAsync : System.Net.IPAddress * int -> System.Threading.Tasks.Task
Public Function ConnectAsync (address As IPAddress, port As Integer) As Task
Parametreler
- address
- IPAddress
Bağlanacak uzak konağın IPAddress'i.
- port
- Int32
Bağlanacak uzak konak üzerindeki bağlantı noktası.
Döndürülenler
Bağlantı kurulduğunda tamamlanan zaman uyumsuz bir görev.
Özel durumlar
address Parametre null olamaz.
Dinliyor Socket .
Yuva veya InterNetworkV6 ailelerinde InterNetwork değil.
Yuvaya erişmeye çalışılırken bir hata oluştu.
Kapatılmış Socket .
Çağrı yığınında daha yüksek bir çağıranın istenen işlem için izni yok.
Açıklamalar
Bu yöntem, yöntemin zaman uyumlu karşılık geleninin oluşturabileceği tüm kullanım dışı özel durumları döndürdüğü görevde depolar. Döndürülen görevde bir özel durum depolanırsa, görev beklendiğinde bu özel durum oluşturulur. ArgumentExceptiongibi kullanım özel durumları hâlâ eşzamanlı olarak fırlatılır. Depolanan özel durumlar için tarafından Connect(IPAddress, Int32)oluşan özel durumlara bakın.
Şunlara uygulanır
ConnectAsync(EndPoint, CancellationToken)
- Kaynak:
- Socket.Tasks.cs
- Kaynak:
- Socket.Tasks.cs
- Kaynak:
- Socket.Tasks.cs
- Kaynak:
- Socket.Tasks.cs
Uzak bir konakla bağlantı kurar.
public:
System::Threading::Tasks::ValueTask ConnectAsync(System::Net::EndPoint ^ remoteEP, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.ValueTask ConnectAsync(System.Net.EndPoint remoteEP, System.Threading.CancellationToken cancellationToken);
member this.ConnectAsync : System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask
Public Function ConnectAsync (remoteEP As EndPoint, cancellationToken As CancellationToken) As ValueTask
Parametreler
- remoteEP
- EndPoint
Bağlanacak uç nokta.
- cancellationToken
- CancellationToken
Zaman uyumsuz işlemi iptal etmek için kullanılabilecek bir iptal belirteci.
Döndürülenler
Bağlantı kurulduğunda tamamlanan zaman uyumsuz bir görev.
Özel durumlar
remoteEP Parametre null olamaz.
Dinliyor Socket .
Yuvaya erişmeye çalışılırken bir hata oluştu.
Yerel uç nokta ve remoteEP parametresi aynı adres ailesi değildir.
Kapatılmış Socket .
Çağrı yığınında daha yüksek bir çağıranın istenen işlem için izni yok.
İptal belirteci iptal edildi. Bu özel durum, döndürülen görevde depolanır.
Açıklamalar
Bu yöntem, yöntemin zaman uyumlu karşılık geleninin oluşturabileceği tüm kullanım dışı özel durumları döndürdüğü görevde depolar. Döndürülen görevde bir özel durum depolanırsa, görev beklendiğinde bu özel durum oluşturulur. ArgumentExceptiongibi kullanım özel durumları hâlâ eşzamanlı olarak fırlatılır. Depolanan özel durumlar için tarafından Connect(EndPoint)oluşan özel durumlara bakın.
Şunlara uygulanır
ConnectAsync(SocketAsyncEventArgs)
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
Uzak bir ana bilgisayara bağlantı için zaman uyumsuz bir istek başlatır.
public:
bool ConnectAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool ConnectAsync(System.Net.Sockets.SocketAsyncEventArgs e);
member this.ConnectAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function ConnectAsync (e As SocketAsyncEventArgs) As Boolean
Parametreler
SocketAsyncEventArgs Bu zaman uyumsuz yuva işlemi için kullanılacak nesne.
Döndürülenler
true G/Ç işlemi bekliyorsa.
Completed parametresindeki e olay, işlem tamamlandıktan sonra tetiklenir.
false G/Ç işlemi zaman uyumlu olarak tamamlandıysa. Bu durumda, Completed parametredeki e olay tetiklenmez ve e parametre olarak geçirilen nesne, yöntem çağrısı işlemin sonucunu almak için döndürdükten hemen sonra incelenebilir.
Özel durumlar
Bağımsız değişken geçerli değil. Birden çok arabellek belirtilirse, özellik null değilse bu BufferList özel durum oluşur.
e Parametre null olamaz ve RemoteEndPoint null olamaz.
Socket dinliyor veya parametresinde e belirtilen nesne kullanılarak SocketAsyncEventArgs bir yuva işlemi zaten devam ediyor.
Yuvaya erişmeye çalışılırken bir hata oluştu.
Yerel uç nokta ve aynı RemoteEndPoint adres ailesi değildir.
Kapatılmış Socket .
Çağrı yığınında daha yüksek bir çağıranın istenen işlem için izni yok.
Açıklamalar
Bağlantı odaklı bir protokol kullanıyorsanız, ConnectAsync yöntemi uzak konakla bağlantı için zaman uyumsuz bir istek başlatır. Bağlantısız bir protokol kullanıyorsanız, ConnectAsync varsayılan bir uzak konak oluşturur.
Tamamlanma bildirimi almak için EventHandler<SocketAsyncEventArgs> temsilcisini uygulayan bir geri çağırma yöntemi oluşturmanız ve geri çağırmayı SocketAsyncEventArgs.Completed olaya eklemeniz gerekir.
Çağıranın SocketAsyncEventArgs.RemoteEndPoint özelliğini IPEndPoint bağlanacak uzak konağın değerine ayarlaması gerekir.
Çağıran, yöntemi çağırmadan ConnectAsync önce istenen herhangi bir kullanıcı durumu nesnesine özelliğini ayarlayabilirSocketAsyncEventArgs.UserToken, böylece bilgiler geri çağırma yönteminde alınabilir. Geri çağırma için tek bir nesneden daha fazla bilgi gerekiyorsa, gerekli diğer durum bilgilerini üye olarak tutmak için küçük bir sınıf oluşturulabilir.
UDP gibi bağlantısız bir protokol kullanıyorsanız, veri göndermeden ve almadan önce arama ConnectAsync yapmanız gerekmez. uzak bir konakla iletişim kurmak için ve ReceiveFromAsync kullanabilirsinizSendToAsync. çağrısı ConnectAsyncyaparsanız, belirtilen varsayılan dışında bir adresten gelen tüm veri birimleri atılır. Varsayılan uzak konağı değiştirmek istiyorsanız, istenen uç noktayla yöntemini yeniden çağırın ConnectAsync .
Varsayılan uzak konağı bir yayın adresi olarak ayarlamak istiyorsanız, önce Yayın'ı çağırıp SetSocketOption olarak trueayarlamanız gerekir. Bu yapılmazsa, ConnectAsync yöntemi bir SocketExceptionoluşturur.
Nesnede System.Net.Sockets.SocketAsyncEventArgs aşağıdaki özellikler ve olaylar gereklidir:
İsteğe bağlı olarak, yöntem başarılı olduktan sonra ConnectAsync yuvaya atomik olarak gönderilecek bir arabellek sağlanabilir. Bu durumda, özelliğin SocketAsyncEventArgs.Buffer gönderilecek verileri içeren arabelleğe ayarlanması ve özelliğin SocketAsyncEventArgs.Count arabellekten gönderilecek veri bayt sayısına ayarlanması gerekir. Bağlantı kurulduktan sonra bu veri arabelleği gönderilir.
Bağlantı odaklı bir protokol kullanıyorsanız ve çağırmadan ConnectAsyncönce aramıyorsanızBind, temel alınan hizmet sağlayıcısı en uygun yerel ağ adresini ve bağlantı noktası numarasını atar.
Bağlantısız bir protokol kullanıyorsanız, veya ReceiveAsync yöntemlerini çağırana SendAsync kadar hizmet sağlayıcısı yerel bir ağ IP adresi ve bağlantı noktası numarası atamaz.
ConnectAsync yöntemi, ve'nin SocketSocketAsyncEventArgs.RemoteEndPoint adres ailesi aynı adres ailesi değilse oluştururNotSupportedException.
Uyarı
Bu yöntemi çağırırken bir SocketException alırsanız, belirli bir hata kodunu almak için özelliğini kullanın 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.
Ayrıca bkz.
Şunlara uygulanır
ConnectAsync(EndPoint)
- Kaynak:
- Socket.Tasks.cs
- Kaynak:
- Socket.Tasks.cs
- Kaynak:
- Socket.Tasks.cs
- Kaynak:
- Socket.Tasks.cs
Uzak bir konakla bağlantı kurar.
public:
System::Threading::Tasks::Task ^ ConnectAsync(System::Net::EndPoint ^ remoteEP);
public System.Threading.Tasks.Task ConnectAsync(System.Net.EndPoint remoteEP);
member this.ConnectAsync : System.Net.EndPoint -> System.Threading.Tasks.Task
Public Function ConnectAsync (remoteEP As EndPoint) As Task
Parametreler
- remoteEP
- EndPoint
Bağlanacak uç nokta.
Döndürülenler
Bağlantı kurulduğunda tamamlanan zaman uyumsuz bir görev.
Özel durumlar
remoteEP Parametre null olamaz.
Dinliyor Socket .
Yuvaya erişmeye çalışılırken bir hata oluştu.
Yerel uç nokta ve remoteEP parametresi aynı adres ailesi değildir.
Kapatılmış Socket .
Çağrı yığınında daha yüksek bir çağıranın istenen işlem için izni yok.
Açıklamalar
Bu yöntem, yöntemin zaman uyumlu karşılık geleninin oluşturabileceği tüm kullanım dışı özel durumları döndürdüğü görevde depolar. Döndürülen görevde bir özel durum depolanırsa, görev beklendiğinde bu özel durum oluşturulur. ArgumentExceptiongibi kullanım özel durumları hâlâ eşzamanlı olarak fırlatılır. Depolanan özel durumlar için tarafından Connect(EndPoint)oluşan özel durumlara bakın.