From ec2b96105fcd990959eff84460905754236fc915 Mon Sep 17 00:00:00 2001 From: "a.pivkin" Date: Sat, 3 Jan 2026 18:10:08 +0300 Subject: [PATCH] asdf --- book_with_bridge/ftp_server/ftp/conn.go | 4 +- book_with_bridge/ftp_server/ftp/dataconn.go | 10 ++--- .../interfaces/reverb_client/go.mod | 3 ++ .../interfaces/reverb_client/main.go | 26 +++++++++++ .../interfaces/reverb_server/go.mod | 3 ++ .../interfaces/reverb_server/main.go | 45 +++++++++++++++++++ 6 files changed, 84 insertions(+), 7 deletions(-) create mode 100644 book_with_bridge/interfaces/reverb_client/go.mod create mode 100644 book_with_bridge/interfaces/reverb_client/main.go create mode 100644 book_with_bridge/interfaces/reverb_server/go.mod create mode 100644 book_with_bridge/interfaces/reverb_server/main.go diff --git a/book_with_bridge/ftp_server/ftp/conn.go b/book_with_bridge/ftp_server/ftp/conn.go index 6947fea..b8ef168 100644 --- a/book_with_bridge/ftp_server/ftp/conn.go +++ b/book_with_bridge/ftp_server/ftp/conn.go @@ -47,8 +47,8 @@ func Serve (c *Conn) { case "QUIT": // close c.respond(status221) return - case "RETR": // get - c.retr(args) + // case "RETR": // get + // c.retr(args) case "TYPE": c.setDataType(args) default: diff --git a/book_with_bridge/ftp_server/ftp/dataconn.go b/book_with_bridge/ftp_server/ftp/dataconn.go index 8cd781e..47b58c6 100644 --- a/book_with_bridge/ftp_server/ftp/dataconn.go +++ b/book_with_bridge/ftp_server/ftp/dataconn.go @@ -10,11 +10,11 @@ func (c *Conn) dataConnect() (net.Conn, error) { return conn, nil } - dataConn, err := c.dataConnect() - if err != nil { - log.Print(err) - c.respond(status425) - return + dataConn, err = c.dataConnect() + if err != nil { + log.Print(err) + c.respond(status425) + return } defer dataConn.Close() diff --git a/book_with_bridge/interfaces/reverb_client/go.mod b/book_with_bridge/interfaces/reverb_client/go.mod new file mode 100644 index 0000000..371eb8f --- /dev/null +++ b/book_with_bridge/interfaces/reverb_client/go.mod @@ -0,0 +1,3 @@ +module main + +go 1.25.5 diff --git a/book_with_bridge/interfaces/reverb_client/main.go b/book_with_bridge/interfaces/reverb_client/main.go new file mode 100644 index 0000000..c304ba4 --- /dev/null +++ b/book_with_bridge/interfaces/reverb_client/main.go @@ -0,0 +1,26 @@ +package main + +import ( + "io" + "log" + "net" + "os" +) + +func mustCopy(dst io.Writer,src io.Reader) { + if _,err := io.Copy(dst,src); err != nil { + log.Fatalf("Error in mustCopy",err) + } + +} + +func main() { + conn,err := net.Dial("tcp",":9090") + if err != nil { + log.Fatalf("Error in Dial %s",err) + } + defer conn.Close() + + go mustCopy(os.Stdout,conn) + mustCopy(conn,os.Stdin) +} \ No newline at end of file diff --git a/book_with_bridge/interfaces/reverb_server/go.mod b/book_with_bridge/interfaces/reverb_server/go.mod new file mode 100644 index 0000000..371eb8f --- /dev/null +++ b/book_with_bridge/interfaces/reverb_server/go.mod @@ -0,0 +1,3 @@ +module main + +go 1.25.5 diff --git a/book_with_bridge/interfaces/reverb_server/main.go b/book_with_bridge/interfaces/reverb_server/main.go new file mode 100644 index 0000000..e00889b --- /dev/null +++ b/book_with_bridge/interfaces/reverb_server/main.go @@ -0,0 +1,45 @@ +package main + +import ( + "bufio" + "fmt" + "log" + "net" + "strings" + "time" +) + +func echo(c net.Conn, shout string, t time.Duration) { + fmt.Fprintln(c, "\t", strings.ToUpper(shout)) + time.Sleep(t) + fmt.Fprintln(c, "\t", shout) + time.Sleep(t) + fmt.Fprintln(c, "\t", strings.ToLower(shout)) +} + +func handleConn(conn net.Conn) { + defer fmt.Println("CLosed Connection") + defer conn.Close() + + fmt.Println("Accepted connection") + input := bufio.NewScanner(conn) + for input.Scan() { + go echo(conn, input.Text(), 1*time.Second) + } + +} + +func main() { + listener, err := net.Listen("tcp", ":9090") + if err != nil { + log.Fatalf("Error %v", err) + } + + for { + conn, err := listener.Accept() + if err != nil { + log.Fatalf("Error in Accept %s", err) + } + go handleConn(conn) + } +}