A pointer is an address in a memory location in the local program *. It is useless to send it to another program, more useless for a program running on another machine, even more useless if the architecture of another machine is different.
Using serialization in your context means sending the contents of what the pointer points to, rather than sending the most meaningless pointer.
To enable data transfer using cross-architecture, it is easier to use text to transfer data. Most, if not all, commonly used cross-architecture protocols use text: HTTP, IMAP, IRC ...
*: I use program instead of process .
source share