mirror of
https://github.com/yv1ing/rdp_channel.git
synced 2025-09-16 14:59:08 +08:00
55 lines
922 B
Go
55 lines
922 B
Go
package app
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"net"
|
|
"rdp_channel/protocol"
|
|
)
|
|
|
|
type Server struct {
|
|
Host string
|
|
Port int
|
|
}
|
|
|
|
func NewServer(host string, port int) Server {
|
|
return Server{host, port}
|
|
}
|
|
|
|
func (server Server) Start() error {
|
|
addr := fmt.Sprintf("%s:%d", server.Host, server.Port)
|
|
|
|
listener, err := net.Listen("tcp", addr)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
defer listener.Close()
|
|
log.Println("[SERVER] listening on " + addr)
|
|
|
|
for {
|
|
conn, err := listener.Accept()
|
|
if err != nil {
|
|
continue
|
|
}
|
|
go handleConnection(conn)
|
|
}
|
|
}
|
|
|
|
func handleConnection(conn net.Conn) {
|
|
defer conn.Close()
|
|
log.Println("[SERVER] new connection from " + conn.RemoteAddr().String())
|
|
|
|
tpkt := protocol.NewTPKT(conn)
|
|
|
|
//fast := protocol.NewFastPath(conn)
|
|
//x224 := protocol.NewX224(conn)
|
|
for {
|
|
payload, err := tpkt.Read()
|
|
if err != nil {
|
|
continue
|
|
}
|
|
|
|
log.Println("[SERVER] received payload: " + string(payload))
|
|
}
|
|
}
|