Files
rdp_channel/protocol/x224/x224_test.go

65 lines
1.0 KiB
Go

package x224
import (
"fmt"
"net"
"rdp_channel/protocol/tpkt"
"testing"
"time"
)
func TestX224(t *testing.T) {
go runServer(t)
runClient(t)
}
func runServer(t *testing.T) {
listener, err := net.Listen("tcp", "127.0.0.1:3388")
if err != nil {
t.Fatal(err)
}
defer listener.Close()
for {
conn, err := listener.Accept()
if err != nil {
t.Fatal(err)
}
go func(conn net.Conn) {
defer conn.Close()
tpkt := tpkt.New(conn)
x224 := New(tpkt)
x224.OnData(func(bytes []byte) {
fmt.Printf("server received: %s\n", string(bytes))
x224.Write([]byte("yes! server hear!"))
})
x224.serverHandleClientMessage()
}(conn)
}
}
func runClient(t *testing.T) {
conn, err := net.Dial("tcp", "127.0.0.1:3388")
if err != nil {
t.Fatal(err)
}
defer conn.Close()
tpkt := tpkt.New(conn)
x224 := New(tpkt)
x224.ConnectToServer()
x224.OnData(func(bytes []byte) {
fmt.Printf("client received: %s\n", string(bytes))
})
for {
time.Sleep(1 * time.Second)
x224.Write([]byte("this is client!"))
}
}