C# Class VncSharpWpf.RfbProtocol

Contains methods and properties to handle all aspects of the RFB Protocol versions 3.3 - 3.8.
Exibir arquivo Open project: nakano531/VncSharpWpf Class Usage Examples

Public Properties

Property Type Description
FailedToListen EventHandler

Protected Properties

Property Type Description
reader System.IO.BinaryReader
stream NetworkStream
tcpClient System.Net.Sockets.TcpClient
tcpListener System.Net.Sockets.TcpListener
verMajor int
verMinor int
writer System.IO.BinaryWriter
zrleReader ZRLECompressedReader

Public Methods

Method Description
Close ( ) : void

Closes the connection to the remote host.

Connect ( string host, int port ) : void

Attempt to connectFromClient to a remote VNC Host.

Listen ( string host, int port ) : void

Start to Listen.

ReadByte ( ) : byte

Reads a single Byte value from the server.

ReadBytes ( int count ) : byte[]

Reads the specified number of bytes from the server, taking care of Big- to Little-Endian conversion.

ReadColourMapEntry ( ) : void

Reads 8-bit RGB colour values (or updated values) into the colour map. See RFB Doc v. 3.8 section 6.5.2.

ReadFramebufferUpdate ( ) : int

Reads the number of update rectangles being sent by the server. See RFB Doc v. 3.8 section 6.4.1.

ReadFramebufferUpdateRectHeader ( Rectangle &rectangle, int &encoding ) : void

Reads a rectangle's header information, including its encoding. See RFB Doc v. 3.8 section 6.4.1.

ReadProtocolVersion ( ) : void

Reads VNC Host Protocol Version message (see RFB Doc v. 3.8 section 6.1.1)

ReadSecurityChallenge ( ) : byte[]

When the server uses Security Type 2 (i.e., VNC Authentication), a Challenge/Response mechanism is used to authenticate the user. See RFB Doc v. 3.8 section 6.1.2 and 6.2.2.

ReadSecurityFailureReason ( ) : string

If the server has rejected the connection during Authentication, a reason is given. See RFB Doc v. 3.8 section 6.1.2.

ReadSecurityResult ( ) : uint

When the server uses VNC Authentication, after the Challege/Response, the server sends a status code to indicate whether authentication worked. See RFB Doc v. 3.8 section 6.1.3.

ReadSecurityTypes ( ) : byte[]

Determine the type(s) of authentication that the server supports. See RFB Doc v. 3.8 section 6.1.2.

ReadServerCutText ( ) : string

Reads the text from the Cut Buffer on the server. See RFB Doc v. 3.8 section 6.4.4.

ReadServerInit ( ) : Framebuffer

Reads the server's Initialization message, specifically the remote Framebuffer's properties. See RFB Doc v. 3.8 section 6.1.5.

ReadServerMessageType ( ) : int

Reads the type of message being sent by the server--all messages are prefixed with a message type.

ReadUInt16 ( ) : ushort

Reads a single UInt16 value from the server, taking care of Big- to Little-Endian conversion.

ReadUint32 ( ) : uint

Reads a single UInt32 value from the server, taking care of Big- to Little-Endian conversion.

RfbProtocol ( ) : System
StopListen ( ) : void

Stop Listening.

WriteByte ( byte value ) : void

Writes a single Byte value to the server.

WriteClientCutText ( string text ) : void

Sends text in the client's Cut Buffer to the server. See RFB Doc v. 3.8 section 6.3.7.

WriteClientInitialisation ( bool shared ) : void

Sends an Initialisation message to the server. See RFB Doc v. 3.8 section 6.1.4.

WriteFramebufferUpdateRequest ( ushort x, ushort y, ushort width, ushort height, bool incremental ) : void

Sends a request for an update of the area specified by (x, y, w, h). See RFB Doc v. 3.8 section 6.3.4.

WriteKeyEvent ( uint keysym, bool pressed ) : void

Sends a key press or release to the server. See RFB Doc v. 3.8 section 6.3.5.

WritePointerEvent ( byte buttonMask, Point point ) : void

Sends a mouse movement or button press/release to the server. See RFB Doc v. 3.8 section 6.3.6.

WriteProtocolVersion ( ) : void

Send the Protocol Version supported by the client. Will be highest supported by server (see RFB Doc v. 3.8 section 6.1.1).

WriteSecurityResponse ( byte response ) : void

Sends the encrypted Response back to the server. See RFB Doc v. 3.8 section 6.1.2.

WriteSecurityType ( byte type ) : void

Indicate to the server which type of authentication will be used. See RFB Doc v. 3.8 section 6.1.2.

WriteSetEncodings ( uint encodings ) : void

Tell the server which encodings are supported by the client. See RFB Doc v. 3.8 section 6.3.3.

WriteSetPixelFormat ( Framebuffer buffer ) : void

Sends the format to be used by the server when sending Framebuffer Updates. See RFB Doc v. 3.8 section 6.3.1.

WriteUInt16 ( ushort value ) : void

Writes a single UInt16 value to the server, taking care of Little- to Big-Endian conversion.

WriteUint32 ( uint value ) : void

Writes a single UInt32 value to the server, taking care of Little- to Big-Endian conversion.

Protected Methods

Method Description
GetBytes ( string text ) : byte[]

Converts a string to bytes for transfer to the server.

GetString ( byte bytes ) : string

Converts a series of bytes to a string.

ReadPadding ( int length ) : void

Reads the specified number of bytes of padding (i.e., garbage bytes) from the server.

WritePadding ( int length ) : void

Writes the specified number of bytes of padding (i.e., garbage bytes) to the server.

Private Methods

Method Description
ListenCore ( ) : void

Function for Listening Thread.

SetStreams ( ) : void

Set Streams to valiables.

Method Details

Close() public method

Closes the connection to the remote host.
public Close ( ) : void
return void

Connect() public method

Attempt to connectFromClient to a remote VNC Host.
public Connect ( string host, int port ) : void
host string The IP Address or Host Name of the VNC Host.
port int The Port number on which to connectFromClient. Usually this will be 5900, except in the case that the VNC Host is running on a different Display, in which case the Display number should be added to 5900 to determine the correct port.
return void

GetBytes() protected static method

Converts a string to bytes for transfer to the server.
protected static GetBytes ( string text ) : byte[]
text string The text to be converted to bytes.
return byte[]

GetString() protected static method

Converts a series of bytes to a string.
protected static GetString ( byte bytes ) : string
bytes byte The Array of Bytes to be converted to a string.
return string

Listen() public method

Start to Listen.
public Listen ( string host, int port ) : void
host string
port int
return void

ReadByte() public method

Reads a single Byte value from the server.
public ReadByte ( ) : byte
return byte

ReadBytes() public method

Reads the specified number of bytes from the server, taking care of Big- to Little-Endian conversion.
public ReadBytes ( int count ) : byte[]
count int The number of bytes to be read.
return byte[]

ReadColourMapEntry() public method

Reads 8-bit RGB colour values (or updated values) into the colour map. See RFB Doc v. 3.8 section 6.5.2.
public ReadColourMapEntry ( ) : void
return void

ReadFramebufferUpdate() public method

Reads the number of update rectangles being sent by the server. See RFB Doc v. 3.8 section 6.4.1.
public ReadFramebufferUpdate ( ) : int
return int

ReadFramebufferUpdateRectHeader() public method

Reads a rectangle's header information, including its encoding. See RFB Doc v. 3.8 section 6.4.1.
public ReadFramebufferUpdateRectHeader ( Rectangle &rectangle, int &encoding ) : void
rectangle System.Drawing.Rectangle The geometry of the rectangle that is about to be sent.
encoding int The encoding used for this rectangle.
return void

ReadPadding() protected method

Reads the specified number of bytes of padding (i.e., garbage bytes) from the server.
protected ReadPadding ( int length ) : void
length int The number of bytes of padding to read.
return void

ReadProtocolVersion() public method

Reads VNC Host Protocol Version message (see RFB Doc v. 3.8 section 6.1.1)
Thrown if the version of the host is not known or supported.
public ReadProtocolVersion ( ) : void
return void

ReadSecurityChallenge() public method

When the server uses Security Type 2 (i.e., VNC Authentication), a Challenge/Response mechanism is used to authenticate the user. See RFB Doc v. 3.8 section 6.1.2 and 6.2.2.
public ReadSecurityChallenge ( ) : byte[]
return byte[]

ReadSecurityFailureReason() public method

If the server has rejected the connection during Authentication, a reason is given. See RFB Doc v. 3.8 section 6.1.2.
public ReadSecurityFailureReason ( ) : string
return string

ReadSecurityResult() public method

When the server uses VNC Authentication, after the Challege/Response, the server sends a status code to indicate whether authentication worked. See RFB Doc v. 3.8 section 6.1.3.
public ReadSecurityResult ( ) : uint
return uint

ReadSecurityTypes() public method

Determine the type(s) of authentication that the server supports. See RFB Doc v. 3.8 section 6.1.2.
public ReadSecurityTypes ( ) : byte[]
return byte[]

ReadServerCutText() public method

Reads the text from the Cut Buffer on the server. See RFB Doc v. 3.8 section 6.4.4.
public ReadServerCutText ( ) : string
return string

ReadServerInit() public method

Reads the server's Initialization message, specifically the remote Framebuffer's properties. See RFB Doc v. 3.8 section 6.1.5.
public ReadServerInit ( ) : Framebuffer
return Framebuffer

ReadServerMessageType() public method

Reads the type of message being sent by the server--all messages are prefixed with a message type.
public ReadServerMessageType ( ) : int
return int

ReadUInt16() public method

Reads a single UInt16 value from the server, taking care of Big- to Little-Endian conversion.
public ReadUInt16 ( ) : ushort
return ushort

ReadUint32() public method

Reads a single UInt32 value from the server, taking care of Big- to Little-Endian conversion.
public ReadUint32 ( ) : uint
return uint

RfbProtocol() public method

public RfbProtocol ( ) : System
return System

StopListen() public method

Stop Listening.
public StopListen ( ) : void
return void

WriteByte() public method

Writes a single Byte value to the server.
public WriteByte ( byte value ) : void
value byte The UInt32 value to be written.
return void

WriteClientCutText() public method

Sends text in the client's Cut Buffer to the server. See RFB Doc v. 3.8 section 6.3.7.
public WriteClientCutText ( string text ) : void
text string The text to be sent to the server.
return void

WriteClientInitialisation() public method

Sends an Initialisation message to the server. See RFB Doc v. 3.8 section 6.1.4.
public WriteClientInitialisation ( bool shared ) : void
shared bool True if the server should allow other clients to connectFromClient, otherwise False.
return void

WriteFramebufferUpdateRequest() public method

Sends a request for an update of the area specified by (x, y, w, h). See RFB Doc v. 3.8 section 6.3.4.
public WriteFramebufferUpdateRequest ( ushort x, ushort y, ushort width, ushort height, bool incremental ) : void
x ushort The x-position of the area to be updated.
y ushort The y-position of the area to be updated.
width ushort The width of the area to be updated.
height ushort The height of the area to be updated.
incremental bool Indicates whether only changes to the client's data should be sent or the entire desktop.
return void

WriteKeyEvent() public method

Sends a key press or release to the server. See RFB Doc v. 3.8 section 6.3.5.
public WriteKeyEvent ( uint keysym, bool pressed ) : void
keysym uint The value of the key pressed, expressed using X Window "keysym" values.
pressed bool
return void

WritePadding() protected method

Writes the specified number of bytes of padding (i.e., garbage bytes) to the server.
protected WritePadding ( int length ) : void
length int The number of bytes of padding to write.
return void

WritePointerEvent() public method

Sends a mouse movement or button press/release to the server. See RFB Doc v. 3.8 section 6.3.6.
public WritePointerEvent ( byte buttonMask, Point point ) : void
buttonMask byte A bitmask indicating which button(s) are pressed.
point Point The location of the mouse cursor.
return void

WriteProtocolVersion() public method

Send the Protocol Version supported by the client. Will be highest supported by server (see RFB Doc v. 3.8 section 6.1.1).
public WriteProtocolVersion ( ) : void
return void

WriteSecurityResponse() public method

Sends the encrypted Response back to the server. See RFB Doc v. 3.8 section 6.1.2.
public WriteSecurityResponse ( byte response ) : void
response byte The DES password encrypted challege sent by the server.
return void

WriteSecurityType() public method

Indicate to the server which type of authentication will be used. See RFB Doc v. 3.8 section 6.1.2.
public WriteSecurityType ( byte type ) : void
type byte The type of Authentication to be used, 1 (None) or 2 (VNC Authentication).
return void

WriteSetEncodings() public method

Tell the server which encodings are supported by the client. See RFB Doc v. 3.8 section 6.3.3.
public WriteSetEncodings ( uint encodings ) : void
encodings uint An array of integers indicating the encoding types supported. The order indicates preference, where the first item is the first preferred.
return void

WriteSetPixelFormat() public method

Sends the format to be used by the server when sending Framebuffer Updates. See RFB Doc v. 3.8 section 6.3.1.
public WriteSetPixelFormat ( Framebuffer buffer ) : void
buffer Framebuffer A Framebuffer telling the server how to encode pixel data. Typically this will be the same one sent by the server during initialization.
return void

WriteUInt16() public method

Writes a single UInt16 value to the server, taking care of Little- to Big-Endian conversion.
public WriteUInt16 ( ushort value ) : void
value ushort The UInt16 value to be written.
return void

WriteUint32() public method

Writes a single UInt32 value to the server, taking care of Little- to Big-Endian conversion.
public WriteUint32 ( uint value ) : void
value uint The UInt32 value to be written.
return void

Property Details

FailedToListen public_oe property

Raised when Failed To Listen.
public EventHandler FailedToListen
return EventHandler

reader protected_oe property

protected BinaryReader,System.IO reader
return System.IO.BinaryReader

stream protected_oe property

protected NetworkStream stream
return NetworkStream

tcpClient protected_oe property

protected TcpClient,System.Net.Sockets tcpClient
return System.Net.Sockets.TcpClient

tcpListener protected_oe property

protected TcpListener,System.Net.Sockets tcpListener
return System.Net.Sockets.TcpListener

verMajor protected_oe property

protected int verMajor
return int

verMinor protected_oe property

protected int verMinor
return int

writer protected_oe property

protected BinaryWriter,System.IO writer
return System.IO.BinaryWriter

zrleReader protected_oe property

protected ZRLECompressedReader zrleReader
return ZRLECompressedReader