Socket.ReceiveFromAsync(SocketAsyncEventArgs) Metódus

Definíció

Elkezd aszinkron módon adatokat fogadni egy megadott hálózati eszközről.

public:
 bool ReceiveFromAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool ReceiveFromAsync(System.Net.Sockets.SocketAsyncEventArgs e);
member this.ReceiveFromAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function ReceiveFromAsync (e As SocketAsyncEventArgs) As Boolean

Paraméterek

e
SocketAsyncEventArgs

Az SocketAsyncEventArgs aszinkron szoftvercsatorna-művelethez használni kívánt objektum.

Válaszok

true ha az I/O-művelet függőben van. A Completed paraméter eseménye a e művelet befejezésekor lesz előállítva.

false ha az I/O-művelet szinkron módon fejeződött be. Ebben az esetben a e paraméter eseménye nem lesz előállítva, Completed és a e paraméterként átadott objektum azonnal megvizsgálható, miután a metódushívás visszatér a művelet eredményének lekéréséhez.

Kivételek

A RemoteEndPoint null érték nem lehet.

A szoftvercsatorna-művelet már folyamatban volt a SocketAsyncEventArgs paraméterben e megadott objektummal.

A Socket le van zárva.

Hiba történt a szoftvercsatorna elérésekor.

Megjegyzések

A ReceiveFromAsync metódust elsősorban kapcsolat nélküli szoftvercsatornák adatainak fogadására használják. A szoftvercsatorna helyi címének ismertnek kell lennie.

A hívónak a SocketAsyncEventArgs.RemoteEndPoint tulajdonságot EndPoint a távoli gazdagép végpontjának típusával megegyező típusúra kell állítania. A tulajdonság a tényleges távoli végpontra való sikeres fogadással frissül.

A SocketAsyncEventArgs.SocketFlags paraméter tulajdonsága e további információkat biztosít a Windows Sockets szolgáltatónak az olvasási kérelemről. További információ a paraméter használatáról: System.Net.Sockets.SocketFlags.

A metódus sikeres meghívásához a következő tulajdonságokra és eseményekre van szükség az System.Net.Sockets.SocketAsyncEventArgs objektumon:

A hívó a SocketAsyncEventArgs.UserToken metódus meghívása előtt bármilyen felhasználói állapotobjektumra beállíthatja a ReceiveFromAsync tulajdonságot, hogy az információk lekérthetők legyenek a visszahívási metódusban. Ha a visszahívásnak több információra van szüksége, mint egyetlen objektum, létrehozhat egy kis osztályt, amely tagként tárolja a többi szükséges állapotinformációt.

Üzenetorientált szoftvercsatornák esetén a rendszer a puffer teljes méretének megfelelő mennyiségű bejövő üzenetet helyez a pufferbe. A SocketAsyncEventArgs.Count tulajdonságok határozzák SocketAsyncEventArgs.Offset meg, hogy a pufferben hová kerülnek az adatok és az adatok mennyisége.

Byte stream stílusú szoftvercsatornák esetén a bejövő adatok a pufferbe kerülnek, amíg meg nem töltik a puffert, bezárják a kapcsolatot, vagy a belsőleg pufferelt adatok kimerülnek. A SocketAsyncEventArgs.Count tulajdonságok határozzák SocketAsyncEventArgs.Offset meg, hogy a pufferben hová kerülnek az adatok és az adatok mennyisége.

A következőre érvényes:

Lásd még