Если одна система (вы никогда не знаете, что может быть под управлением Linux) потенциально может использовать различные представления для отрицательных целых чисел (например, дополнение, знаковая величина; редко, но возможно), то передайте числа в виде строк и проанализируйте их в целые на приемнике. Не так эффективно, но если вы не передаете большое количество цифр, это не будет иметь большого значения. Если нужно передать много чисел, вы можете использовать некоторую форму сжатия.
В качестве альтернативы, определите свое сетевое представление для отрицательных чисел и напишите свои собственные ntohsl и htonsl.
При любом подходе в каждой системе будет один номер, который не может быть представлен в другой; вам нужно решить, как поступить при получении этого номера.