From 4db7ef650ae905a8dd6df89de790fe7dad8e65d3 Mon Sep 17 00:00:00 2001
From: thevindu-w Protocol Version 2
+
Note that all the bytes in the "Client sends" and "Server Sends" columns are hex-encoded.
+Phase | +Size (bytes) | +Client sends | +Server sends | +Description | +
---|---|---|---|---|
Version Negotiation | +1 | +03 | ++ | Client requests protocol version 3 | +
1 | ++ | 01 | +Server accepts the request to use protocol version 3 | +|
Method selection | +1 | +01 | ++ | Client requests the get text method | +
1 | ++ | 01 | +Server accepts the request | +|
Get text | +8 | ++ | 00 00 00 00 00 00 00 10 | +Server sends the length of copied text as 16 bytes as a 64-bit signed integer in big-endian + format. 0000000000000010 in hexadecimal is 16 in decimal. | +
16 | ++ | 48 65 6C 6C 6F 20 43 6C 69 70 53 68 61 72 65 21 | +Server sends the text copied to the clipboard, which is 16 bytes long when encoded in UTF-8. The + text is "Hello ClipShare!" (without quotes) when decoded. | +|
Communication ends and connection closes | +
Note that all the bytes in the "Client sends" and "Server Sends" columns are hex-encoded.
+Phase | +Size (bytes) | +Client sends | +Server sends | +Description | +
---|---|---|---|---|
Version Negotiation | +1 | +03 | ++ | Client requests protocol version 3 | +
1 | ++ | 01 | +Server accepts the request to use protocol version 3 | +|
Method selection | +1 | +01 | ++ | Client requests the get text method | +
1 | ++ | 02 | +Server indicates that there is no text copied to the clipboard (No data) | +|
Communication ends and connection closes | +
Note that all the bytes in the "Client sends" and "Server Sends" columns are hex-encoded.
+Phase | +Size (bytes) | +Client sends | +Server sends | +Description | +
---|---|---|---|---|
Version Negotiation | +1 | +03 | ++ | Client requests protocol version 3 | +
1 | ++ | 01 | +Server accepts the request to use protocol version 3 | +|
Method selection | +1 | +02 | ++ | Client requests the send text method | +
1 | ++ | 01 | +Server accepts the request | +|
Send text | +8 | +00 00 00 00 00 00 00 10 | ++ | Client sends the length of copied text as 16 bytes as a 64-bit signed integer in big-endian + format. 0000000000000010 in hexadecimal is 16 in decimal. | +
16 | +48 65 6C 6C 6F 20 43 6C 69 70 53 68 61 72 65 21 | ++ | Client sends the text copied to the clipboard, which is 16 bytes long when encoded in UTF-8. The + text is "Hello ClipShare!" (without quotes) when decoded. | +|
Communication ends and connection closes | +
Note that all the bytes in the "Client sends" and "Server Sends" columns are hex-encoded.
+Phase | +Size (bytes) | +Client sends | +Server sends | +Description | +|
---|---|---|---|---|---|
Version Negotiation | +1 | +03 | ++ | Client requests protocol version 3 | +|
1 | ++ | 01 | +Server accepts the request to use protocol version 3 | +||
Method selection | +1 | +03 | ++ | Client requests the get files method | +|
1 | ++ | 01 | +Server accepts the request | +||
Get files | +File count | +8 | ++ | 00 00 00 00 00 00 00 04 | +Server sends the number of files as 4 in a 64-bit signed integer in big-endian + format. | +
First file | +8 | ++ | 00 00 00 00 00 00 00 0E | +Server sends the length of the first file name as 14 bytes as a 64-bit signed integer in + big-endian format. 000000000000000E in hexadecimal is 14 in decimal. | +|
14 | ++ | 66 69 72 73 74 5F 66 69 6C 65 2E 74 78 74 | +Server sends the name of the first file, which is 14 bytes long when encoded in UTF-8. The file + name is "first_file.txt" (without quotes) when decoded. | +||
8 | ++ | 00 00 00 00 00 00 00 25 | +Server sends the size of the first file as 37 bytes as a 64-bit signed integer in big-endian + format. 0000000000000025 in hexadecimal is 37 in decimal. | +||
37 | ++ | 74 68 69 73 20 69 73 20 74 68 65 20 63 6F 6E 74 65 6E 74 20 6F 66 20 74 68 65 20 66 + 69 72 73 74 20 66 69 6C 65 | +Server sends the content of the first file, which is 37 bytes in size. The file content is "this + is the content of the first file" (without quotes). | +||
Second file | +8 | ++ | 00 00 00 00 00 00 00 17 | +Server sends the length of the second file name as 23 bytes as a 64-bit signed integer in + big-endian format. 0000000000000017 in hexadecimal is 23 in decimal. | +|
23 | ++ | 66 6F 6C 64 65 72 31 2F 73 65 63 6F 6E 64 5F 66 69 6C 65 2E 74 78 74 | +Server sends the name of the second file, which is 23 bytes long when encoded in UTF-8. The file + name is "folder1/second_file.txt" (without quotes) when decoded. | +||
8 | ++ | 00 00 00 00 00 00 00 26 | +Server sends the size of the second file as 38 bytes as a 64-bit signed integer in big-endian + format. 0000000000000026 in hexadecimal is 38 in decimal. | +||
38 | ++ | 74 68 69 73 20 69 73 20 74 68 65 20 63 6F 6E 74 65 6E 74 20 6F 66 20 74 68 65 20 73 + 65 63 6F 6E 64 20 66 69 6C 65 | +Server sends the content of the second file, which is 38 bytes in size. The file content is + "this is the content of the second file" (without quotes). | +||
Third file | +8 | ++ | 00 00 00 00 00 00 00 16 | +Server sends the length of the third file name as 22 bytes as a 64-bit signed integer in + big-endian format. 0000000000000016 in hexadecimal is 22 in decimal. | +|
22 | ++ | 66 6F 6C 64 65 72 32 2F 74 68 69 72 64 5F 66 69 6C 65 2E 74 78 74 | +Server sends the name of the third file, which is 22 bytes long when encoded in UTF-8. The file + name is "folder2/third_file.txt" (without quotes) when decoded. | +||
8 | ++ | 00 00 00 00 00 00 00 25 | +Server sends the size of the third file as 37 bytes as a 64-bit signed integer in big-endian + format. 0000000000000025 in hexadecimal is 37 in decimal. | +||
37 | ++ | 74 68 69 73 20 69 73 20 74 68 65 20 63 6F 6E 74 65 6E 74 20 6F 66 20 74 68 65 20 74 + 68 69 72 64 20 66 69 6C 65 | +Server sends the content of the third file, which is 37 bytes in size. The file content is + "this is the content of the third file" (without quotes). | +||
Fourth file | +8 | ++ | 00 00 00 00 00 00 00 21 | +Server sends the length of the fourth file name as 33 bytes as a 64-bit signed integer in + big-endian format. 0000000000000021 in hexadecimal is 33 in decimal. | +|
33 | ++ | 66 6F 6C 64 65 72 32 2F 73 75 62 66 6F 6C 64 65 72 2F 66 6F 75 72 74 68 5F 66 69 6C + 65 2E 74 78 74 | +Server sends the name of the fourth file, which is 33 bytes long when encoded in UTF-8. The file + name is "folder2/subfolder/fourth_file.txt" (without quotes) when decoded. | +||
8 | ++ | 00 00 00 00 00 00 00 26 | +Server sends the size of the fourth file as 38 bytes as a 64-bit signed integer in big-endian + format. 0000000000000026 in hexadecimal is 38 in decimal. | +||
38 | ++ | 74 68 69 73 20 69 73 20 74 68 65 20 63 6F 6E 74 65 6E 74 20 6F 66 20 74 68 65 20 66 + 6F 75 72 74 68 20 66 69 6C 65 | +Server sends the content of the fourth file, which is 38 bytes in size. The file content is + "this is the content of the fourth file" (without quotes). | +||
Communication ends and connection closes | +
The files transfered are in the following structure,
+
+. +├── folder1 +│ └── second_file.txt +├── folder2 +│ ├── subfolder +│ │ └── fourth_file.txt +│ └── third_file.txt +└── first_file.txt ++ + +
Note that all the bytes in the "Client sends" and "Server Sends" columns are hex-encoded.
+Phase | +Size (bytes) | +Client sends | +Server sends | +Description | +
---|---|---|---|---|
Version Negotiation | +1 | +03 | ++ | Client requests protocol version 3 | +
1 | ++ | 01 | +Server accepts the request to use protocol version 3 | +|
Method selection | +1 | +03 | ++ | Client requests the get files method | +
1 | ++ | 02 | +Server indicates that there are no files copied (No data) | +|
Communication ends and connection closes | +
Note that all the bytes in the "Client sends" and "Server Sends" columns are hex-encoded.
+Phase | +Size (bytes) | +Client sends | +Server sends | +Description | +|
---|---|---|---|---|---|
Version Negotiation | +1 | +03 | ++ | Client requests protocol version 3 | +|
1 | ++ | 01 | +Server accepts the request to use protocol version 3 | +||
Method selection | +1 | +04 | ++ | Client requests the send files method | +|
1 | ++ | 01 | +Server accepts the request | +||
Get files | +File count | +8 | +00 00 00 00 00 00 00 04 | ++ | Client sends the number of files as 4 in a 64-bit signed integer in big-endian + format. | +
First file | +8 | +00 00 00 00 00 00 00 0E | ++ | Client sends the length of the first file name as 14 bytes as a 64-bit signed integer in + big-endian format. 000000000000000E in hexadecimal is 14 in decimal. | +|
14 | +66 69 72 73 74 5F 66 69 6C 65 2E 74 78 74 | ++ | Client sends the name of the first file, which is 14 bytes long when encoded in UTF-8. The file + name is "first_file.txt" (without quotes) when decoded. | +||
8 | +00 00 00 00 00 00 00 25 | ++ | Client sends the size of the first file as 37 bytes as a 64-bit signed integer in big-endian + format. 0000000000000025 in hexadecimal is 37 in decimal. | +||
37 | +74 68 69 73 20 69 73 20 74 68 65 20 63 6F 6E 74 65 6E 74 20 6F 66 20 74 68 65 20 66 + 69 72 73 74 20 66 69 6C 65 | ++ | Client sends the content of the first file, which is 37 bytes in size. The file content is "this + is the content of the first file" (without quotes). | +||
Second file | +8 | +00 00 00 00 00 00 00 17 | ++ | Client sends the length of the second file name as 23 bytes as a 64-bit signed integer in + big-endian format. 0000000000000017 in hexadecimal is 23 in decimal. | +|
23 | +66 6F 6C 64 65 72 31 2F 73 65 63 6F 6E 64 5F 66 69 6C 65 2E 74 78 74 | ++ | Client sends the name of the second file, which is 23 bytes long when encoded in UTF-8. The file + name is "folder1/second_file.txt" (without quotes) when decoded. | +||
8 | +00 00 00 00 00 00 00 26 | ++ | Client sends the size of the second file as 38 bytes as a 64-bit signed integer in big-endian + format. 0000000000000026 in hexadecimal is 38 in decimal. | +||
38 | +74 68 69 73 20 69 73 20 74 68 65 20 63 6F 6E 74 65 6E 74 20 6F 66 20 74 68 65 20 73 + 65 63 6F 6E 64 20 66 69 6C 65 | ++ | Client sends the content of the second file, which is 38 bytes in size. The file content is + "this is the content of the second file" (without quotes). | +||
Third file | +8 | +00 00 00 00 00 00 00 16 | ++ | Client sends the length of the third file name as 22 bytes as a 64-bit signed integer in + big-endian format. 0000000000000016 in hexadecimal is 22 in decimal. | +|
22 | +66 6F 6C 64 65 72 32 2F 74 68 69 72 64 5F 66 69 6C 65 2E 74 78 74 | ++ | Client sends the name of the third file, which is 22 bytes long when encoded in UTF-8. The file + name is "folder2/third_file.txt" (without quotes) when decoded. | +||
8 | +00 00 00 00 00 00 00 25 | ++ | Client sends the size of the third file as 37 bytes as a 64-bit signed integer in big-endian + format. 0000000000000025 in hexadecimal is 37 in decimal. | +||
37 | +74 68 69 73 20 69 73 20 74 68 65 20 63 6F 6E 74 65 6E 74 20 6F 66 20 74 68 65 20 74 + 68 69 72 64 20 66 69 6C 65 | ++ | Client sends the content of the third file, which is 37 bytes in size. The file content is + "this is the content of the third file" (without quotes). | +||
Fourth file | +8 | +00 00 00 00 00 00 00 21 | ++ | Client sends the length of the fourth file name as 33 bytes as a 64-bit signed integer in + big-endian format. 0000000000000021 in hexadecimal is 33 in decimal. | +|
33 | +66 6F 6C 64 65 72 32 2F 73 75 62 66 6F 6C 64 65 72 2F 66 6F 75 72 74 68 5F 66 69 6C + 65 2E 74 78 74 | ++ | Client sends the name of the fourth file, which is 33 bytes long when encoded in UTF-8. The file + name is "folder2/subfolder/fourth_file.txt" (without quotes) when decoded. | +||
8 | +00 00 00 00 00 00 00 26 | ++ | Client sends the size of the fourth file as 38 bytes as a 64-bit signed integer in big-endian + format. 0000000000000026 in hexadecimal is 38 in decimal. | +||
38 | +74 68 69 73 20 69 73 20 74 68 65 20 63 6F 6E 74 65 6E 74 20 6F 66 20 74 68 65 20 66 + 6F 75 72 74 68 20 66 69 6C 65 | ++ | Client sends the content of the fourth file, which is 38 bytes in size. The file content is + "this is the content of the fourth file" (without quotes). | +||
Communication ends and connection closes | +
The files transfered are in the following structure,
+
+. +├── folder1 +│ └── second_file.txt +├── folder2 +│ ├── subfolder +│ │ └── fourth_file.txt +│ └── third_file.txt +└── first_file.txt ++ + +
Note that all the bytes in the "Client sends" and "Server Sends" columns are hex-encoded.
+Phase | +Size (bytes) | +Client sends | +Server sends | +Description | +
---|---|---|---|---|
Version Negotiation | +1 | +03 | ++ | Client requests protocol version 3 | +
1 | ++ | 01 | +Server accepts the request to use protocol version 3 | +|
Method selection | +1 | +05 | ++ | Client requests the get image method | +
1 | ++ | 01 | +Server accepts the request | +|
Get Image | +8 | ++ | 00 00 00 00 00 00 00 5F | +Server sends the length of the image copied to the clipboard (or a screenshot) as 95 bytes as a + 64-bit signed integer in big-endian format. 000000000000005F in hexadecimal is 190 in decimal. + | +
95 | ++ | 89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52 00 00 00 05 00 00 00 05 08 02 00 00 + 00 02 0D B1 B2 00 00 00 26 49 44 41 54 08 D7 55 CB 21 12 00 20 10 80 40 70 FC FF 97 31 68 F0 68 + 1B B0 42 B9 95 01 F5 AC 8B BF 9A D6 CD FC 0F 82 8C 0E 05 22 B1 80 9C 00 00 00 00 49 45 4E 44 AE + 42 60 82 | +Server sends the image copied to the clipboard (or a screenshot), which is 95 bytes long. + The image is:
+
+ |
+ |
Communication ends and connection closes | +
Note that all the bytes in the "Client sends" and "Server Sends" columns are hex-encoded.
+Phase | +Size (bytes) | +Client sends | +Server sends | +Description | +
---|---|---|---|---|
Version Negotiation | +1 | +03 | ++ | Client requests protocol version 3 | +
1 | ++ | 01 | +Server accepts the request to use protocol version 3 | +|
Method selection | +1 | +06 | ++ | Client requests the get image method | +
1 | ++ | 01 | +Server accepts the request | +|
Get Image | +8 | ++ | 00 00 00 00 00 00 00 5F | +Server sends the length of the image copied to the clipboard (or a screenshot) as 95 bytes as a + 64-bit signed integer in big-endian format. 000000000000005F in hexadecimal is 190 in decimal. + | +
95 | ++ | 89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52 00 00 00 05 00 00 00 05 08 02 00 00 + 00 02 0D B1 B2 00 00 00 26 49 44 41 54 08 D7 55 CB 21 12 00 20 10 80 40 70 FC FF 97 31 68 F0 68 + 1B B0 42 B9 95 01 F5 AC 8B BF 9A D6 CD FC 0F 82 8C 0E 05 22 B1 80 9C 00 00 00 00 49 45 4E 44 AE + 42 60 82 | +Server sends the image copied to the clipboard (or a screenshot), which is 95 bytes long. + The image is:
+
+ |
+ |
Communication ends and connection closes | +
Note that all the bytes in the "Client sends" and "Server Sends" columns are hex-encoded.
+Phase | +Size (bytes) | +Client sends | +Server sends | +Description | +
---|---|---|---|---|
Version Negotiation | +1 | +03 | ++ | Client requests protocol version 3 | +
1 | ++ | 01 | +Server accepts the request to use protocol version 3 | +|
Method selection | +1 | +06 | ++ | Client requests the get image method | +
1 | ++ | 02 | +Server indicates that there is no image copied to the clipboard (No data) | +|
Communication ends and connection closes | +
Note that all the bytes in the "Client sends" and "Server Sends" columns are hex-encoded.
+Phase | +Size (bytes) | +Client sends | +Server sends | +Description | +
---|---|---|---|---|
Version Negotiation | +1 | +03 | ++ | Client requests protocol version 3 | +
1 | ++ | 01 | +Server accepts the request to use protocol version 3 | +|
Method selection | +1 | +7D | ++ | Client requests the info method | +
1 | ++ | 01 | +Server accepts the request | +|
Get text | +8 | ++ | 00 00 00 00 00 00 00 0A | +Server sends the length of info as 10 bytes as a 64-bit signed integer in big-endian format. + 000000000000001A in hexadecimal is 10 in decimal. | +
10 | ++ | 63 6C 69 70 5F 73 68 61 72 65 | +Server sends the info text, which is 10 bytes long when encoded in UTF-8. The info text is + "clip_share" (without quotes) when decoded. | +|
Communication ends and connection closes | +
This method is identical to the Get Image method of Version 1 and 2.
-This method is similar to the Get Image/Screenshot method, except that if there is no image copied to the clipboard, the server will not send a screenshot as the image. Instead, the server