Большинство программ, написанных на любом языке, могут общаться через сокеты. Таким образом, слушатель сокета C # может слушать отправителя C ++. Они делают, заменяя последовательность байтов (очень упрощенно)
То, что вы делаете здесь, это сериализация объекта C # с использованием MsgPack в байтовом массиве и его отправка. На другом конце тот же MsgPack используется для десериализации объекта C #.
Это не будет работать на всех языках программирования, если ваша библиотека сериализации / десериализации не поддерживает это, что в вашем случае MsgPack не поддерживает.
Возьми этот класс C #
public class Weather
{
public int zipcode;
public int temperature;
public int humidity;
}
Эквивалент класса C ++
class Weather
{
public:
int zipcode;
int temperature;
int humidity;
}
В зависимости от вашей ОС .. sizeof (int) в C ++ будет 4 байта (символа). sizeof (int) в C # также составляет 4 байта.
Таким образом, теоретически вы можете обмениваться 12 (4 * 3) байтами по сокетному соединению между программами на C ++ и C #, так что объект погоды с обеих сторон будет примерно одинаковым