In C++ we send data using socket on the network. I am aware that we need to use *htons()* , *ntohs()* function to maintain byte order **big endian** and **little endian**. 

support we have following data to be sent

```
int roll;
int id;
char name[100];

```

This can also be wrapped into struct. 

My confusion here is, for *roll* and *id*, we can use *htons()* function. But for the string *name*, what should and how should we do it? Do we need to use any such function? will it work on every machine like mac, intel and other network?

I want to send all three fields in one packet.