---
title: socketDevices
framework: virtualization
role: symbol
role_heading: Instance Property
path: virtualization/vzvirtualmachineconfiguration/socketdevices
---

# socketDevices

The socket device that you use to implement port-based communication with the guest operating system.

## Declaration

```swift
var socketDevices: [VZSocketDeviceConfiguration] { get set }
```

## Discussion

Discussion The default value of this property is an empty array. If your VM supports port-based communication with sockets, create a single VZVirtioSocketDeviceConfiguration object, add it to an array, and assign it to this property. After initializing the virtual machine, use the object in its socketDevices property to configure the port information and handlers.

## See Also

### Adding devices to the VM

- [audioDevices](virtualization/vzvirtualmachineconfiguration/audiodevices.md)
- [consoleDevices](virtualization/vzvirtualmachineconfiguration/consoledevices.md)
- [customVirtioDevices](virtualization/vzvirtualmachineconfiguration/customvirtiodevices.md)
- [directorySharingDevices](virtualization/vzvirtualmachineconfiguration/directorysharingdevices.md)
- [entropyDevices](virtualization/vzvirtualmachineconfiguration/entropydevices.md)
- [graphicsDevices](virtualization/vzvirtualmachineconfiguration/graphicsdevices.md)
- [keyboards](virtualization/vzvirtualmachineconfiguration/keyboards.md)
- [networkDevices](virtualization/vzvirtualmachineconfiguration/networkdevices.md)
- [platform](virtualization/vzvirtualmachineconfiguration/platform.md)
- [pointingDevices](virtualization/vzvirtualmachineconfiguration/pointingdevices.md)
- [serialPorts](virtualization/vzvirtualmachineconfiguration/serialports.md)
- [storageDevices](virtualization/vzvirtualmachineconfiguration/storagedevices.md)
- [usbControllers](virtualization/vzvirtualmachineconfiguration/usbcontrollers.md)
- [customVirtioDevices](virtualization/vzvirtualmachineconfiguration/customvirtiodevices.md)
