Send struct from socket - C#
Формулировка задачи:
Здравствуйте, помогите пожалуйста отправить структуру на ++...Делал так но не работает на другой стороне сервера...Даже не знаю правильно ли перевел структуру с ++..
typedef struct { unsigned int size; unsigned int cmd; unsigned int type; unsigned char idlen; unsigned char id[1]; } TInitialRequest, *PInitialRequest;
static byte[] ObjectToByteArray(object obj) { if (obj == null) return null; BinaryFormatter bf = new BinaryFormatter(); MemoryStream ms = new MemoryStream(); bf.Serialize(ms, obj); return ms.ToArray(); } [Serializable] struct TInitialRequest { public uint size; public uint cmd; public uint type; public byte idlen; public byte[] id; } // main Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); s.Connect("127.0.0.1", 2288); string name = "Test"; TInitialRequest req = new TInitialRequest(); req.size = 0; req.cmd = 9; req.id = Encoding.Default.GetBytes(name.ToCharArray()); req.idlen = Convert.ToByte(name.Length); req.type = 18; s.Send(ObjectToByteArray(req));
Решение задачи: «Send struct from socket»
textual
Листинг программы
req.id = Encoding.UTF8.GetBytes(name); // или ASCII
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д