[Home](./index.md) > [bitburner](./bitburner.md) > [NS](./bitburner.ns.md) > [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.