diff options
| author | ilotterytea <iltsu@alright.party> | 2025-08-02 14:23:01 +0500 |
|---|---|---|
| committer | ilotterytea <iltsu@alright.party> | 2025-08-02 14:23:01 +0500 |
| commit | 29804aca7c87efd1d67c7fb278ac64f9a879107f (patch) | |
| tree | a61393984d82f92d632d3f00a3146426c7c952a6 | |
| parent | cbe415e8fc05a41cb9b0a6f67ac15d5ae4b21a2d (diff) | |
feat: client id
| -rw-r--r-- | internal/client.go | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/internal/client.go b/internal/client.go index 287650d..c6a3704 100644 --- a/internal/client.go +++ b/internal/client.go @@ -7,36 +7,40 @@ import ( "strings" ) +var clientId uint64 + type Client struct { + id uint64 conn net.Conn server *Server } func NewIRCClient(conn net.Conn, server *Server) *Client { - c := Client{conn: conn, server: server} + clientId++ + c := Client{id: clientId, conn: conn, server: server} return &c } func (c *Client) HandleConnection() { defer c.conn.Close() - log.Printf("New client connected from %s\n", c.conn.RemoteAddr()) + log.Printf("New client (ID %d) connected from %s\n", c.id, c.conn.RemoteAddr()) buffer := make([]byte, 512) for { n, err := c.conn.Read(buffer) if err != nil { - log.Printf("Error reading from client %s: %v\n", c.conn.RemoteAddr(), err) + log.Printf("Error reading from client (ID %d) %s: %v\n", c.id, c.conn.RemoteAddr(), err) return } data := strings.TrimSpace(string(buffer[:n])) - fmt.Printf("%s sent %s\n", c.conn.RemoteAddr(), data) + fmt.Printf("%s (ID %d) sent %s\n", c.conn.RemoteAddr(), c.id, data) _, err = c.conn.Write([]byte("you said " + data)) if err != nil { - log.Printf("Error sending to client %s: %v", c.conn.RemoteAddr(), err) + log.Printf("Error sending to client (ID %d) %s: %v", c.id, c.conn.RemoteAddr(), err) return } |
