---
title: xpc_session_t
framework: xpc
role: symbol
role_heading: Type Alias
path: xpc/xpc_session_t-10if0
---

# xpc_session_t

A C type that sends messages to a server process.

## Declaration

```swift
typealias xpc_session_t = OS_xpc_session
```

## Discussion

Discussion XPC sessions are stateful connections you use to send structured messages to a separate process. Once established, a session remains active until one side of the connection cancels it, at which point the system invalidates the connection. Unlike lower-level xpc_connection functions, the system makes no attempt to reestablish a connection or relaunch the service.

## Topics

### Creating a session

- [xpc_session_t](xpc/xpc_session_t-49tiv.md)
- [xpc_session_create_mach_service(_:_:_:_:)](xpc/xpc_session_create_mach_service(_:_:_:_:).md)
- [xpc_session_create_xpc_service(_:_:_:_:)](xpc/xpc_session_create_xpc_service(_:_:_:_:).md)
- [xpc_session_create_flags_t](xpc/xpc_session_create_flags_t-swift.struct.md)
- [xpc_session_copy_description(_:)](xpc/xpc_session_copy_description(_:).md)
- [xpc_session_set_target_queue(_:_:)](xpc/xpc_session_set_target_queue(_:_:).md)

### Managing life cycle

- [xpc_session_activate(_:_:)](xpc/xpc_session_activate(_:_:).md)
- [xpc_session_cancel(_:)](xpc/xpc_session_cancel(_:).md)
- [xpc_session_set_cancel_handler(_:_:)](xpc/xpc_session_set_cancel_handler(_:_:).md)
- [xpc_session_set_incoming_message_handler(_:_:)](xpc/xpc_session_set_incoming_message_handler(_:_:).md)
- [xpc_session_incoming_message_handler_t](xpc/xpc_session_incoming_message_handler_t-elj.md)
- [xpc_session_cancel_handler_t](xpc/xpc_session_cancel_handler_t-65b6f.md)

### Sending messages

- [xpc_rich_error_t](xpc/xpc_rich_error_t.md)
- [xpc_rich_error_can_retry(_:)](xpc/xpc_rich_error_can_retry(_:).md)
- [xpc_rich_error_copy_description(_:)](xpc/xpc_rich_error_copy_description(_:).md)
- [xpc_session_send_message(_:_:)](xpc/xpc_session_send_message(_:_:).md)
- [xpc_session_send_message_with_reply_async(_:_:_:)](xpc/xpc_session_send_message_with_reply_async(_:_:_:).md)
- [xpc_session_reply_handler_t](xpc/xpc_session_reply_handler_t-2hf7c.md)
- [xpc_session_send_message_with_reply_sync(_:_:_:)](xpc/xpc_session_send_message_with_reply_sync(_:_:_:).md)

### Working with code signing

- [xpc_session_set_peer_code_signing_requirement(_:_:)](xpc/xpc_session_set_peer_code_signing_requirement(_:_:).md)

## See Also

### Interprocess communication

- [Creating XPC services](xpc/creating-xpc-services.md)
- [XPCListener](xpc/xpclistener.md)
- [XPCSession](xpc/xpcsession.md)
- [XPCReceivedMessage](xpc/xpcreceivedmessage.md)
- [xpc_listener_t](xpc/xpc_listener_t.md)
