#include #include #include #include #include #include #include #include #include #include #include #include "vnc.h" /* ------------------------------------------------------------------ */ static void usage(FILE *fp) { fprintf(fp, "This is a simple vnc client\n" "\n" "usage: vnc-client [options] display\n" "options:\n" " -h Print this text.\n" " -d Enable debug output.\n" " -u Send us kbd layout keysyms.\n" " -p Show mouse pointer.\n" " -o View only.\n" "\n" "-- \n" "(c) 2006 Gerd Hoffmann \n"); } int main(int argc, char *argv[]) { unsigned long vnc_flags = VNC_FLAG_STANDALONE; char hostname[65]; int displayno, port; int debug = 0; int c; gtk_init(&argc, &argv); for (;;) { if (-1 == (c = getopt(argc, argv, "hdupo"))) break; switch (c) { case 'd': debug++; break; case 'u': vnc_flags |= VNC_FLAG_US_KBD; break; case 'p': vnc_flags |= VNC_FLAG_SHOW_MOUSE; break; case 'o': vnc_flags |= VNC_FLAG_VIEW_ONLY; break; case 'h': usage(stdout); exit(0); default: usage(stderr); exit(1); } } if (optind+1 > argc) { usage(stderr); exit(1); } if (2 == sscanf(argv[optind], "%64[^:]:%d", hostname, &displayno)) { port = displayno + 5900; goto connect; } if (2 == sscanf(argv[optind], "%64[^:]::%d", hostname, &port)) goto connect; usage(stderr); exit(1); connect: if (NULL == vnc_open(hostname, port, vnc_flags, debug)) exit(1); gtk_main(); fprintf(stderr,"bye...\n"); exit(0); }