Added in [API level 28](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Methods](https://developer.android.com/reference/android/net/IpSecManager.UdpEncapsulationSocket#pubmethods) \| [Protected Methods](https://developer.android.com/reference/android/net/IpSecManager.UdpEncapsulationSocket#promethods) \| [Inherited Methods](https://developer.android.com/reference/android/net/IpSecManager.UdpEncapsulationSocket#inhmethods)

# IpSecManager.UdpEncapsulationSocket

*** ** * ** ***

` public static final class IpSecManager.UdpEncapsulationSocket `   
` extends https://developer.android.com/reference/java/lang/Object ` ` implements https://developer.android.com/reference/java/lang/AutoCloseable `

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.net.IpSecManager.UdpEncapsulationSocket |

<br />

*** ** * ** ***

This class provides access to a UDP encapsulation Socket.

`UdpEncapsulationSocket` wraps a system-provided datagram socket intended for IKEv2 signalling and UDP encapsulated IPsec traffic. Instances can be obtained by calling `https://developer.android.com/reference/android/net/IpSecManager#openUdpEncapsulationSocket()`. The provided socket cannot be re-bound by the caller. The caller should not close the `FileDescriptor` returned by `https://developer.android.com/reference/android/net/IpSecManager.UdpEncapsulationSocket#getFileDescriptor()`, but should use `https://developer.android.com/reference/android/net/IpSecManager.UdpEncapsulationSocket#close()` instead.

Allowing the user to close or unbind a UDP encapsulation socket could impact the traffic of the next user who binds to that port. To prevent this scenario, these sockets are held open by the system so that they may only be closed by calling `https://developer.android.com/reference/android/net/IpSecManager.UdpEncapsulationSocket#close()` or when the user process exits.

## Summary

| ### Public methods ||
|---|---|
| ` void` | ` https://developer.android.com/reference/android/net/IpSecManager.UdpEncapsulationSocket#close()() ` Close this socket. |
| ` https://developer.android.com/reference/java/io/FileDescriptor` | ` https://developer.android.com/reference/android/net/IpSecManager.UdpEncapsulationSocket#getFileDescriptor()() ` Get the encapsulation socket's file descriptor. |
| ` int` | ` https://developer.android.com/reference/android/net/IpSecManager.UdpEncapsulationSocket#getPort()() ` Get the bound port of the wrapped socket. |
| ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/net/IpSecManager.UdpEncapsulationSocket#toString()() ` Returns a string representation of the object. |

| ### Protected methods ||
|---|---|
| ` void` | ` https://developer.android.com/reference/android/net/IpSecManager.UdpEncapsulationSocket#finalize()() ` Check that the socket was closed properly. |

### Inherited methods

From class ` https://developer.android.com/reference/java/lang/Object ` ` https://developer.android.com/reference/java/lang/Object` ` https://developer.android.com/reference/java/lang/Object#clone()() `

Creates and returns a copy of this object.
` boolean` ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) `

Indicates whether some other object is "equal to" this one.
` void` ` https://developer.android.com/reference/java/lang/Object#finalize()() `

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
` final https://developer.android.com/reference/java/lang/Class<?>` ` https://developer.android.com/reference/java/lang/Object#getClass()() `

Returns the runtime class of this `Object`.
` int` ` https://developer.android.com/reference/java/lang/Object#hashCode()() `

Returns a hash code value for the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#notify()() `

Wakes up a single thread that is waiting on this object's monitor.
` final void` ` https://developer.android.com/reference/java/lang/Object#notifyAll()() `

Wakes up all threads that are waiting on this object's monitor.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/lang/Object#toString()() `

Returns a string representation of the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait()() `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*.
From interface ` https://developer.android.com/reference/java/lang/AutoCloseable ` ` abstract void` ` https://developer.android.com/reference/java/lang/AutoCloseable#close()() `

Closes this resource, relinquishing any underlying resources.

## Public methods

### close

Added in [API level 28](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void close ()
```

Close this socket.

This closes the wrapped socket. Open encapsulation sockets count against a user's resource limits, and forgetting to close them eventually will result in `https://developer.android.com/reference/android/net/IpSecManager.ResourceUnavailableException` being thrown.

<br />

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` |   |

### getFileDescriptor

Added in [API level 28](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public FileDescriptor getFileDescriptor ()
```

Get the encapsulation socket's file descriptor.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/io/FileDescriptor` | <br /> |

### getPort

Added in [API level 28](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getPort ()
```

Get the bound port of the wrapped socket.

<br />

| Returns ||
|---|---|
| `int` | <br /> |

### toString

Added in [API level 28](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public String toString ()
```

Returns a string representation of the object.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | a string representation of the object. <br /> |

## Protected methods

### finalize

Added in [API level 28](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
protected void finalize ()
```

Check that the socket was closed properly.

<br />

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/Throwable` |   |