XboxLiveEndpointPair Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
An XboxLiveEndpointPair is a security and network quality relationship established between two devices for socket-based communication.
The Windows.Networking.XboxLive API enables peer-to-peer (P2P) connectivity in varied environments, leveraging IPv4, IPv6, and Microsoft's Network Address Translation (NAT) traversal technologies and services (such as Teredo) to determine and configure the best available network path between endpoints. It also establishes encryption of traffic and protection against tampering, as a measure to reduce cheating. Additionally, it authenticates users and applications through the Xbox Live ecosystem&dmash;integrating connectivity information with other Xbox Live services. This information can then be used in matchmaking, to attempt to match players with similar connectivity stats against each other.
The Windows.Networking.XboxLive API complements and extends traditional networking transports such as TCP and UDP, and the available sockets APIs, WinSock and Windows.Networking.Sockets. You create an XboxLiveEndpointPair using this API, and then use your preferred transport API for actual data transmission. The XboxLiveEndpointPair concept itself is related to Windows.Networking.EndpointPair in that it can be interpreted as a set of local and remote IP addresses and ports; but with an XboxLiveEndpointPair, those properties are read-only (because the system negotiates them) and have an associated validity lifetime (because an XboxLiveEndpointPair represents an active security relationship that can be terminated for various reasons).
Important
This API is not available to all apps. Unless your developer account is specially provisioned by Microsoft, calls to these APIs will fail at runtime.
public ref class XboxLiveEndpointPair sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Networking.XboxLive.XboxLiveSecureSocketsContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class XboxLiveEndpointPair final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Networking.XboxLive.XboxLiveSecureSocketsContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class XboxLiveEndpointPair
Public NotInheritable Class XboxLiveEndpointPair
- Inheritance
- Attributes
Windows requirements
Device family |
Xbox One System Apps Extensions for the UWP (introduced in 10.0.0.1)
Xbox Live Extension SDK (introduced in 10.0.10240.0) Xbox One Extensions for the UWP (introduced in 10.0.10240.0) Windows Desktop Extension SDK (introduced in 10.0.16299.0) |
API contract |
Windows.Networking.XboxLive.XboxLiveSecureSocketsContract (introduced in v1.0)
|
Remarks
You don't create instances of this class using a constructor. Instead, you do so using one of the CreateEndpointPairAsync or CreateEndpointPairForPorts methods in the XboxLiveEndpointPairTemplate class, in order to create an endpoint pair that follows a particular communication template.
Properties
LocalHostName |
Important This API is not available to all apps. Unless your developer account is specially provisioned by Microsoft, calls to these APIs will fail at runtime. |
LocalPort |
Gets the port for the local endpoint. Important This API is not available to all apps. Unless your developer account is specially provisioned by Microsoft, calls to these APIs will fail at runtime. |
RemoteDeviceAddress |
Gets the XboxLiveDeviceAddress for the remote endpoint. Important This API is not available to all apps. Unless your developer account is specially provisioned by Microsoft, calls to these APIs will fail at runtime. |
RemoteHostName |
Gets a HostName for the remote endpoint. Important This API is not available to all apps. Unless your developer account is specially provisioned by Microsoft, calls to these APIs will fail at runtime. |
RemotePort |
Gets the port for the remote endpoint. Important This API is not available to all apps. Unless your developer account is specially provisioned by Microsoft, calls to these APIs will fail at runtime. |
State |
Gets a value representing the state of this XboxLiveEndpointPair. Important This API is not available to all apps. Unless your developer account is specially provisioned by Microsoft, calls to these APIs will fail at runtime. |
Template |
Gets the XboxLiveEndpointPairTemplate used to instantiate this endpoint pair. Important This API is not available to all apps. Unless your developer account is specially provisioned by Microsoft, calls to these APIs will fail at runtime. |
Methods
DeleteAsync() |
Begins gracefully terminating the XboxLiveEndpointPair security relationship between the two endpoints. A best-effort attempt to notify the remote device is performed, though there's no guarantee that this notification will be received if the remote device is no longer available or reachable. The remote device might instead time out the XboxLiveEndpointPair. The action will complete successfully regardless of the remote device or the prior status of the XboxLiveEndpointPair. Important This API is not available to all apps. Unless your developer account is specially provisioned by Microsoft, calls to these APIs will fail at runtime. |
FindEndpointPairByHostNamesAndPorts(HostName, String, HostName, String) |
Finds an existing XboxLiveEndpointPair instance, if one exists, associated with traffic from a first host and port to a second host and port. Use this method to work backwards from incoming traffic to the XboxLiveEndpointPair that's associated with that traffic. Important This API is not available to all apps. Unless your developer account is specially provisioned by Microsoft, calls to these APIs will fail at runtime. |
FindEndpointPairBySocketAddressBytes(Byte[], Byte[]) |
Finds an existing XboxLiveEndpointPair instance, if one exists, associated with traffic between two given socket addresses, where the socket addresses are provided as arrays of Byte containing Winsock SOCKADDR_STORAGE or related structures. Use this method to work backwards from incoming traffic to the XboxLiveEndpointPair associated with that traffic. Important This API is not available to all apps. Unless your developer account is specially provisioned by Microsoft, calls to these APIs will fail at runtime. |
GetLocalSocketAddressBytes(Byte[]) |
Gets the local endpoint's socket address information as an array of Byte. This method fills the specified byte buffer with the SOCKADDR_STORAGE address of the local device for use in subsequent Winsock operations leveraging the Xbox Live Multiplayer Networking API. Important This API is not available to all apps. Unless your developer account is specially provisioned by Microsoft, calls to these APIs will fail at runtime. |
GetRemoteSocketAddressBytes(Byte[]) |
Gets the remote endpoint's socket address information, as an array of Byte. This method fills the specified byte buffer with the SOCKADDR_STORAGE address of the remote device for use in subsequent Winsock operations leveraging the Xbox Live Multiplayer Networking API. Important This API is not available to all apps. Unless your developer account is specially provisioned by Microsoft, calls to these APIs will fail at runtime. |
Events
StateChanged |
Event raised when the state of the XboxLiveEndpointPair changes. Important This API is not available to all apps. Unless your developer account is specially provisioned by Microsoft, calls to these APIs will fail at runtime. |