Skip to content

Commit a847012

Browse files
committed
fix client issues and add seed
1 parent 89cb690 commit a847012

File tree

1 file changed

+15
-9
lines changed

1 file changed

+15
-9
lines changed

cmd/client/main.go

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
package main
22

33
import (
4+
"bufio"
45
"fmt"
56
"log"
67
"math/rand"
78
"net"
89
"os"
910
"strings"
1011
"sync"
12+
"time"
1113

1214
ui "github.com/gizak/termui/v3"
1315
"github.com/gizak/termui/v3/widgets"
@@ -29,26 +31,31 @@ var intToColor = []string{
2931

3032
func readMessage(conn net.Conn, message chan string) (string, error) {
3133
for {
32-
buffer := make([]byte, 1024)
33-
length, err := conn.Read(buffer)
34+
reader := bufio.NewReader(conn)
35+
msg, err := reader.ReadString('\n')
3436
if err != nil {
3537
return "", err
3638
}
3739

3840
name := conn.LocalAddr().String()
3941
_, ok := nameToColor[name]
4042
if !ok {
43+
rand.Seed(time.Now().UnixNano())
4144
nameToColor[name] = intToColor[rand.Intn(8)]
4245
}
4346
color := nameToColor[name]
4447

45-
msg := strings.TrimSpace(string(buffer[:length]))
46-
message <- (fmt.Sprintf("[%s](fg:%s)", msg, color))
48+
msg = strings.TrimSpace(msg)
49+
if msg != "1" {
50+
message <- (fmt.Sprintf("[%s](fg:%s)", msg, color))
51+
}
4752
}
4853
}
4954

5055
func writeMessage(conn net.Conn, message string) error {
51-
_, err := conn.Write([]byte(message))
56+
writer := bufio.NewWriter(conn)
57+
_, err := writer.WriteString(message + "\n")
58+
writer.Flush()
5259
if err != nil {
5360
fmt.Println("Error writing to server:", err.Error())
5461
return err
@@ -57,12 +64,11 @@ func writeMessage(conn net.Conn, message string) error {
5764
}
5865

5966
func main() {
60-
if len(os.Args) != 3 {
61-
fmt.Println("Usage: client <server-address> <username>")
67+
if len(os.Args) != 2 {
68+
fmt.Println("Usage: client <server-address>")
6269
os.Exit(1)
6370
}
6471
serverAddress := os.Args[1]
65-
username := os.Args[2]
6672

6773
if err := ui.Init(); err != nil {
6874
log.Fatalf("failed to initialize termui: %v", err)
@@ -117,7 +123,7 @@ func main() {
117123
ui.Render(sendMessageBox)
118124
case e.ID == "<Enter>" && len(sendMessageBox.Text) > 0:
119125
receivedMessageList.Rows = append(receivedMessageList.Rows, fmt.Sprintf("[You: %s](fg:magenta)", sendMessageBox.Text))
120-
writeMessage(conn, username+": "+sendMessageBox.Text)
126+
writeMessage(conn, sendMessageBox.Text)
121127
sendMessageBox.Text = ""
122128
receivedMessageList.ScrollBottom()
123129
ui.Render(receivedMessageList)

0 commit comments

Comments
 (0)