<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [NS](./bitburner.ns.md) &gt; [writePort](./bitburner.ns.writeport.md)

## NS.writePort() method

Write data to a port.

**Signature:**

```typescript
writePort(portNumber: number, data: any): any;
```

## Parameters

|  Parameter | Type | Description |
|  --- | --- | --- |
|  portNumber | number | Port to write to. Must be a positive integer. |
|  data | any | Data to write, it's cloned with structuredClone(). |

**Returns:**

any

The data popped off the queue if it was full, or null if it was not full.

## Remarks

RAM cost: 0 GB

Write data to the given Netscript port.

There is a limit on the maximum number of ports, but you won't reach that limit in normal situations. If you do, it usually means that there is a bug in your script that leaks port data. A port is freed when it does not have any data in its underlying queue. `ns.clearPort` deletes all data on a port. `ns.readPort` reads the first element in the port's queue, then removes it from the queue.

