К🇦
Size: a a a
К🇦
MT
func writeToServer(conn net.Conn, ctx context.Context, wg *sync.WaitGroup) {
// defer wg.Done()
scanner := bufio.NewScanner(os.Stdin)
for {
select {
case <-ctx.Done():
fmt.Println("done recevied in client goroutine")
return
default:
if !scanner.Scan() {
fmt.Println("return in client gor")
return
}
cmd := scanner.Text()
conn.Write([]byte(fmt.Sprintf("%s\n", cmd)))
}
}
log.Println("Reading from os.stdin is finished")
}
DP
MT
func gracefulShutdown(conn net.Conn, quitCh <-chan os.Signal, cancel func()) {
defer cancel()
<-quitCh
log.Println("Connection is closing...")
err := conn.Close()
if err != nil {
log.Fatalf("Cannot close connection: %v", err)
}
log.Println("Connection is closed")
}
N
M
N
АП
N
N
SP
SP
NK
IK
DP
DP
IK
IK