简体   繁体   中英

BinaryWriter to MemoryStream in Java

I have C# program that makes a tcp connection with another c# program. In the c# program to send an message I did this :

private TcpClient client;

private void SendPulse()
{
    byte[] send_Buffer;
    port = 11000;

    while (true)
    {
        lock (locked)
        {
            try
            {
                BlockID = 1003;
                using (MemoryStream ms = new MemoryStream())
                {
                    using (BinaryWriter w = new BinaryWriter(ms))
                    {
                        NetworkStream stream = client.GetStream();
                        BlockID = 1003;
                        LengthMessage = 84;

                        // Header : 
                        w.Write(BeginMessage);
                        w.Write(BlockID);
                        w.Write(LengthMessage);
                        w.Write(RadarID);
                        w.Write(Time);
                        w.Write(ModeSystem);
                        w.Write(Icd_primary_var);
                        w.Write(Icd_secondary_ver);

                        // Data :
                        w.Write(StatusSystem);
                        send_Buffer = ms.ToArray();

                        stream.Write(send_Buffer, 0, send_Buffer.Length);

                        Thread.Sleep(3000); // Send pulse every 3 seconds.
                    }
                }
            }
            catch
            {

            }
        }
    }
}

The idea is to write in binarywriter and than convert the memory we wrote on to byte array and to send it.

Now I have Java programming. I want to do it too, I have connection with C# but I dont know how to send it. I did DataOutputStream but it send every parameter alone, I want all in 1 array of bytes exactly like in the c# code.

Thanks for helpers.

If you want to use DataOutputStream, you can wrap it around a BufferedOutputStream and flush() it when you are done.

Or you can use an NIO ByteBuffer and write it to the socket.

To make the message easier to decode I would add the length to the start, unless you know it every message will be that length.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM