Highly-opinionated (ex-bullshit-free) MTPROTO proxy for Telegram. If you use v1.0 or upgrade broke you proxy, please read the chapter Version 2
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

12345678910111213141516171819202122232425262728293031323334353637383940
  1. // Echo server — runs on Amsterdam, simulates Telegram DC.
  2. // Simply echoes back everything received on each connection.
  3. package main
  4. import (
  5. "flag"
  6. "fmt"
  7. "io"
  8. "net"
  9. "os"
  10. "sync/atomic"
  11. )
  12. var activeConns atomic.Int64
  13. func main() {
  14. addr := flag.String("addr", "0.0.0.0:19999", "listen address")
  15. flag.Parse()
  16. ln, err := net.Listen("tcp", *addr)
  17. if err != nil {
  18. fmt.Fprintf(os.Stderr, "listen: %v\n", err)
  19. os.Exit(1)
  20. }
  21. fmt.Printf("echo server listening on %s\n", *addr)
  22. for {
  23. conn, err := ln.Accept()
  24. if err != nil {
  25. fmt.Fprintf(os.Stderr, "accept: %v\n", err)
  26. continue
  27. }
  28. activeConns.Add(1)
  29. go func(c net.Conn) {
  30. defer c.Close()
  31. defer activeConns.Add(-1)
  32. io.Copy(c, c) //nolint: errcheck
  33. }(conn)
  34. }
  35. }