From 28ebe47606811a3ebe0cce8e6ad2d70e9e547e7c Mon Sep 17 00:00:00 2001 From: matst80 Date: Tue, 12 Nov 2024 15:19:28 +0100 Subject: [PATCH] maybe non blocking with a new reader --- cart-packet-queue.go | 6 ++++-- packet-queue.go | 6 ++++-- tcp-cart-mux-server.go | 6 ++++-- tcp-mux-server.go | 6 ++++-- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/cart-packet-queue.go b/cart-packet-queue.go index 4669719..b466aeb 100644 --- a/cart-packet-queue.go +++ b/cart-packet-queue.go @@ -1,6 +1,7 @@ package main import ( + "bufio" "io" "log" "net" @@ -29,8 +30,9 @@ func (p *CartPacketQueue) HandleConnection(connection net.Conn) error { defer connection.Close() var packet CartPacket + reader := bufio.NewReader(connection) for { - err := ReadCartPacket(connection, &packet) + err := ReadCartPacket(reader, &packet) if err != nil { if err == io.EOF { return nil @@ -49,7 +51,7 @@ func (p *CartPacketQueue) HandleConnection(connection net.Conn) error { }) continue } - data, err := GetPacketData(connection, packet.DataLength) + data, err := GetPacketData(reader, packet.DataLength) if err != nil { log.Printf("Error receiving packet data: %v\n", err) return err diff --git a/packet-queue.go b/packet-queue.go index 654c403..e1fa4a1 100644 --- a/packet-queue.go +++ b/packet-queue.go @@ -1,6 +1,7 @@ package main import ( + "bufio" "io" "log" "net" @@ -34,8 +35,9 @@ func (p *PacketQueue) HandleConnection(connection net.Conn) error { defer connection.Close() var packet Packet + reader := bufio.NewReader(connection) for { - err := ReadPacket(connection, &packet) + err := ReadPacket(reader, &packet) if err != nil { if err == io.EOF { return nil @@ -54,7 +56,7 @@ func (p *PacketQueue) HandleConnection(connection net.Conn) error { }) continue } - data, err := GetPacketData(connection, packet.DataLength) + data, err := GetPacketData(reader, packet.DataLength) if err != nil { log.Printf("Error receiving packet data: %v\n", err) //return err diff --git a/tcp-cart-mux-server.go b/tcp-cart-mux-server.go index ab64058..a9f27aa 100644 --- a/tcp-cart-mux-server.go +++ b/tcp-cart-mux-server.go @@ -1,6 +1,7 @@ package main import ( + "bufio" "encoding/binary" "io" "log" @@ -103,8 +104,9 @@ func (m *TCPCartServerMux) HandleConnection(connection net.Conn) error { var packet CartPacket var err error defer connection.Close() + reader := bufio.NewReader(connection) for { - err = ReadCartPacket(connection, &packet) + err = ReadCartPacket(reader, &packet) if err != nil { if err == io.EOF { return nil @@ -116,7 +118,7 @@ func (m *TCPCartServerMux) HandleConnection(connection net.Conn) error { log.Printf("Incorrect packet version: %d\n", packet.Version) continue } - data, err := GetPacketData(connection, packet.DataLength) + data, err := GetPacketData(reader, packet.DataLength) if err != nil { log.Printf("Error getting packet data: %v\n", err) } diff --git a/tcp-mux-server.go b/tcp-mux-server.go index e505dd3..895fd77 100644 --- a/tcp-mux-server.go +++ b/tcp-mux-server.go @@ -1,6 +1,7 @@ package main import ( + "bufio" "encoding/binary" "io" "log" @@ -100,8 +101,9 @@ func (m *TCPServerMux) HandleConnection(connection net.Conn) error { defer connection.Close() var packet Packet + reader := bufio.NewReader(connection) for { - err := ReadPacket(connection, &packet) + err := ReadPacket(reader, &packet) if err != nil { if err == io.EOF { return nil @@ -113,7 +115,7 @@ func (m *TCPServerMux) HandleConnection(connection net.Conn) error { log.Printf("Incorrect package version: %v\n", err) continue } - data, err := GetPacketData(connection, packet.DataLength) + data, err := GetPacketData(reader, packet.DataLength) if err != nil { log.Printf("Error receiving packet data: %v\n", err) }