Я новичок в Go и пытаюсь создать сервер, который может получать сообщение от клиента и отправлять его другому клиенту или любому другому конкретному клиенту.Я пробовал много примеров чата, но я хотел создать два файла, один из которых предназначен для сервера, а другой - для клиента.Это код, который я пробовал до сих пор.
server.go
package main
import "net"
import "fmt"
import "bufio"
import "strings"
func send(c net.Conn){
netData, err := bufio.NewReader(c).ReadString('\n')
if err != nil {
fmt.Println(err)
return
}
temp := strings.TrimSpace(string(netData))
fmt.Printf(temp)
}
func main() {
fmt.Println("Launching server...")
// listen on all interfaces
ln, _ := net.Listen("tcp", ":8081")
for {
// Listen for an incoming connection.
conn, err := ln.Accept()
if err != nil {
fmt.Println("Error accepting: ", err.Error())
continue
}
go send(conn)
}
client.go
package main
import "net"
import "fmt"
import "bufio"
import "os"
func recieve(conn net.Conn){
message, _ := bufio.NewReader(conn).ReadString('\n')
fmt.Println(message)
}
func send(conn net.Conn){
reader := bufio.NewReader(os.Stdin)
text, _ := reader.ReadString('\n')
fmt.Fprintf(conn, text)
}
func main(){
// connect to this socket
conn, err := net.Dial("tcp", "127.0.0.1:8081")
if err != nil {
fmt.Println("Error accepting: ", err.Error())
}
for {
go recieve(conn)
go send(conn)
}
conn.Close()
}
Когда я пытаюсь запустить этот компьютер, произошел сбой.Я понимаю, что делаю какую-то ошибку при обработке отправленного и полученного сообщения, но не смог понять это.Я буду признателен за любую помощь.Благодарю.