Home > Backend Development > Golang > How to Convert []byte to int in Go for TCP Communication?

How to Convert []byte to int in Go for TCP Communication?

DDD
Release: 2024-12-13 16:37:14
Original
397 people have browsed it

How to Convert []byte to int in Go for TCP Communication?

Converting from []byte to int in Go for TCP Communication

Communication over TCP often requires exchanging data in the form of byte arrays ([]byte). However, in certain scenarios, you may need to convert these byte arrays to integers (int) for processing.

Conversion Methods

To convert a byte array to an integer in Go, you can use two primary methods:

1. Using encoding/binary:

The encoding/binary package provides functions that allow you to convert from various binary formats to Go types. Specifically, for converting byte arrays to integers, you can use:

binary.LittleEndian.Uint32(mySlice) // Converts to 32-bit unsigned int
binary.BigEndian.Uint32(mySlice) // Converts to 32-bit unsigned int in big endian format
Copy after login

2. Custom Conversion:

You can also implement your conversion logic if the standard library functions don't meet your specific requirements. Here's an example of a custom conversion for converting a 4-byte array to an integer:

func bytesToInt(mySlice []byte) int {
    return int(mySlice[0]<<24 | mySlice[1]<<16 | mySlice[2]<<8 | mySlice[3])
}
Copy after login

Example Application:

In your client-server example, you can use the following code to send integers to the server:

package main

import (
    "encoding/binary"
    "net"
)

func main() {
    // 2 numbers to send
    num1 := 100
    num2 := 200

    // Convert to byte arrays
    buf1 := make([]byte, 4)
    binary.LittleEndian.PutUint32(buf1, uint32(num1))
    buf2 := make([]byte, 4)
    binary.LittleEndian.PutUint32(buf2, uint32(num2))

    // Connect to server
    conn, err := net.Dial("tcp", "127.0.0.1:8080")
    if err != nil {
        // Handle error
    }

    // Send byte arrays to server
    if _, err := conn.Write(buf1); err != nil {
        // Handle error
    }
    if _, err := conn.Write(buf2); err != nil {
        // Handle error
    }
}
Copy after login

The above is the detailed content of How to Convert []byte to int in Go for TCP Communication?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template