fixup client

Signed-off-by: Vasiliy Tolstov <v.tolstov@selfip.ru>
This commit is contained in:
Василий Толстов 2017-07-10 23:40:30 +03:00
parent 7915e89e38
commit faf8458fa3

View File

@ -4,13 +4,15 @@ import (
"context" "context"
"log" "log"
"net" "net"
"os"
"time"
vnc "github.com/vtolstov/go-vnc" vnc "github.com/vtolstov/go-vnc"
) )
func main() { func main() {
// Establish TCP connection to VNC server. // Establish TCP connection to VNC server.
nc, err := net.Dial("tcp", "192.168.100.41:5900") nc, err := net.DialTimeout("tcp", os.Args[1], 5*time.Second)
if err != nil { if err != nil {
log.Fatalf("Error connecting to VNC host. %v", err) log.Fatalf("Error connecting to VNC host. %v", err)
} }
@ -18,18 +20,16 @@ func main() {
// Negotiate connection with the server. // Negotiate connection with the server.
cchServer := make(chan vnc.ServerMessage) cchServer := make(chan vnc.ServerMessage)
cchClient := make(chan vnc.ClientMessage) cchClient := make(chan vnc.ClientMessage)
errorCh := make(chan error)
ccfg := &vnc.ClientConfig{ ccfg := &vnc.ClientConfig{
VersionHandler: vnc.ClientVersionHandler, SecurityHandlers: []vnc.SecurityHandler{&vnc.ClientAuthATEN{Username: []byte(os.Args[2]), Password: []byte(os.Args[3])}},
SecurityHandler: vnc.ClientSecurityHandler, PixelFormat: vnc.PixelFormat32bit,
SecurityHandlers: []vnc.SecurityHandler{&vnc.ClientAuthATEN{Username: []byte("ADMIN"), Password: []byte("ADMIN")}}, ClientMessageCh: cchClient,
ClientInitHandler: vnc.ClientClientInitHandler, ServerMessageCh: cchServer,
ServerInitHandler: vnc.ClientServerInitHandler, ServerMessages: vnc.DefaultServerMessages,
PixelFormat: vnc.PixelFormat32bit, Encodings: []vnc.Encoding{&vnc.RawEncoding{}},
ClientMessageCh: cchClient, ErrorCh: errorCh,
ServerMessageCh: cchServer,
ServerMessages: vnc.DefaultServerMessages,
Encodings: []vnc.Encoding{&vnc.RawEncoding{}},
} }
cc, err := vnc.Connect(context.Background(), nc, ccfg) cc, err := vnc.Connect(context.Background(), nc, ccfg)
@ -37,17 +37,16 @@ func main() {
if err != nil { if err != nil {
log.Fatalf("Error negotiating connection to VNC host. %v", err) log.Fatalf("Error negotiating connection to VNC host. %v", err)
} }
// Listen and handle server messages.
go cc.Handle()
// Process messages coming in on the ServerMessage channel. // Process messages coming in on the ServerMessage channel.
for { for {
select { select {
case err := <-errorCh:
panic(err)
case msg := <-cchClient: case msg := <-cchClient:
log.Printf("Received message type:%v msg:%v\n", msg.Type(), msg) log.Printf("Received message type:%v msg:%v\n", msg.Type(), msg)
case msg := <-cchServer: case msg := <-cchServer:
log.Printf("Received message type:%v msg:%v\n", msg.Type(), msg) log.Printf("Received message type:%v msg:%v\n", msg.Type(), msg)
} }
} }
cc.Wait()
} }