-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchat_client.cpp
376 lines (332 loc) · 41.2 KB
/
chat_client.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
//
// chat_client.cpp
// ~~~~~~~~~~~~~~~
//
// Copyright (c) 2003-2016 Christopher M. Kohlhoff (chris at kohlhoff dot com)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//
#define _CRT_SECURE_NO_WARNINGS
#include <cstdlib>
#include <deque>
#include <thread>
#include <cstdio>
#include <cstring>
#include <boost/asio.hpp>
#include <iostream>
#include <boost/multiprecision/cpp_int.hpp>
class chat_message
{
public:
enum { header_length = 4 };
enum { max_body_length = 512 };
chat_message()
: body_length_(0)
{
}
const char* data() const
{
return data_;
}
char* data()
{
return data_;
}
std::size_t length() const
{
return header_length + body_length_;
}
const char* body() const
{
return data_ + header_length;
}
char* body()
{
return data_ + header_length;
}
std::size_t body_length() const
{
return body_length_;
}
void body_length(std::size_t new_length)
{
body_length_ = new_length;
if (body_length_ > max_body_length)
body_length_ = max_body_length;
}
bool decode_header()
{
char header[header_length + 1] = "";
std::strncat(header, data_, header_length);
body_length_ = std::atoi(header);
if (body_length_ > max_body_length)
{
body_length_ = 0;
return false;
}
return true;
}
void encode_header()
{
char header[header_length + 1] = "";
std::sprintf(header, "%4d", static_cast<int>(body_length_));
std::memcpy(data_, header, header_length);
}
private:
char data_[header_length + max_body_length];
std::size_t body_length_;
};
using boost::asio::ip::tcp;
typedef std::deque<chat_message> chat_message_queue;
using boost::asio::ip::tcp;
typedef std::deque<chat_message> chat_message_queue;
class chat_client
{
public:
chat_client(boost::asio::io_service& io_service,
tcp::resolver::iterator endpoint_iterator)
: io_service_(io_service),
socket_(io_service)
{
do_connect(endpoint_iterator);
}
void write(const chat_message& msg)
{
io_service_.post(
[this, msg]()
{
bool write_in_progress = !write_msgs_.empty();
write_msgs_.push_back(msg);
if (!write_in_progress)
{
do_write();
}
});
}
void close()
{
io_service_.post([this]() { socket_.close(); });
}
private:
void do_connect(tcp::resolver::iterator endpoint_iterator)
{
boost::asio::async_connect(socket_, endpoint_iterator,
[this](boost::system::error_code ec, tcp::resolver::iterator)
{
if (!ec)
{
do_read_header();
}
});
}
void do_read_header()
{
boost::asio::async_read(socket_,
boost::asio::buffer(read_msg_.data(), chat_message::header_length),
[this](boost::system::error_code ec, std::size_t /*length*/)
{
if (!ec && read_msg_.decode_header())
{
do_read_body();
}
else
{
socket_.close();
}
});
}
void do_read_body()
{
boost::asio::async_read(socket_,
boost::asio::buffer(read_msg_.body(), read_msg_.body_length()),
[this](boost::system::error_code ec, std::size_t /*length*/)
{
if (!ec)
{
std::cout.write(read_msg_.body(), read_msg_.body_length());
std::cout << "\n";
do_read_header();
}
else
{
socket_.close();
}
});
}
void do_write()
{
boost::asio::async_write(socket_,
boost::asio::buffer(write_msgs_.front().data(),
write_msgs_.front().length()),
[this](boost::system::error_code ec, std::size_t /*length*/)
{
if (!ec)
{
write_msgs_.pop_front();
if (!write_msgs_.empty())
{
do_write();
}
}
else
{
socket_.close();
}
});
}
private:
boost::asio::io_service& io_service_;
tcp::socket socket_;
chat_message read_msg_;
chat_message_queue write_msgs_;
};
#define PARA_MAX 20000
using namespace std;
unsigned char GetAsciiToNumber(unsigned char apabetNum)
{
if (!isxdigit(apabetNum)) return 0;
enum alpaNumLower { a = 10, b, c, d, e, f };
enum alpaNumUpper { A = 10, B, C, D, E, F };
switch (apabetNum) {
case 'A': return alpaNumUpper::A; break;
case 'B': return alpaNumUpper::B; break;
case 'C': return alpaNumUpper::C; break;
case 'D': return alpaNumUpper::D; break;
case 'E': return alpaNumUpper::E; break;
case 'F': return alpaNumUpper::F; break;
case 'a': return alpaNumLower::a; break;
case 'b': return alpaNumLower::b; break;
case 'c': return alpaNumLower::c; break;
case 'd': return alpaNumLower::d; break;
case 'e': return alpaNumLower::e; break;
case 'f': return alpaNumLower::f; break;
default: return apabetNum - '0'; break;
}
}
void test1() {
std::string getstr = "07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878AA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569607E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCC07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878AA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569607E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCC07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878AA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569607E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCC07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878AA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569607E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCC07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878AA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569607E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCC07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878AA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569607E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCC07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878AA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569607E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCC07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878AA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDD";
std::string setstr = "";
unsigned int bitoffset = 0;
unsigned char para[PARA_MAX] = { 0 };
for (int i = 0; i < getstr.length(); i++)
{
if (bitoffset >= (getstr.length() - 1))
{
if (getstr.length() % 2 == 1)
para[i] = GetAsciiToNumber(getstr.at(bitoffset));
break;
}
else
{
para[i] = (GetAsciiToNumber(getstr.at(bitoffset)) << 4) + GetAsciiToNumber(getstr.at(bitoffset + 1));
}
bitoffset += 2;
}
}
void test2() {
std::string getstr = "07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878AA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569607E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCC07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878AA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569607E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCC07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878AA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569607E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCC07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878AA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569607E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCC07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878AA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569607E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCC07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878AA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569607E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCC07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878AA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569607E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCC07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878FFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFFCCCDSFFFFCCCCCCCDSFF3456789123456968687834567891234569686878AA1234557F23456789ABCDEF123456789123456968687807E02223456789ABCDEFFFDD07E02223456789ABCDEFFFDDEECCAA1234557F23456789ABCFFCCBBCCDDFFCCCCCCCF23456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDDFFBBCCDDFFCCCCCCCDSFF456789ABCFFCCBBCCDD";
std::string setstr = "";
unsigned int bitoffset = 0;
unsigned char para[PARA_MAX] = { 0 };
unsigned __int64 nParameter[PARA_MAX] = { 0, };
unsigned int strsize = (getstr.length() >= 16) ? (getstr.length() / 8) : getstr.length();
for (int i = 0; i < strsize; i++)
{
if (bitoffset <= getstr.length())
{
setstr.clear();
setstr = getstr.substr(bitoffset, 16);
nParameter[i] = _strtoui64(setstr.c_str(), nullptr, 16);
switch (setstr.length())
{
case 15: case 16:
para[(8 * i) + 0] = nParameter[i] >> ((setstr.length() != 16) ? 52 : 56);
para[(8 * i) + 1] = nParameter[i] >> ((setstr.length() != 16) ? 44 : 48);
para[(8 * i) + 2] = nParameter[i] >> ((setstr.length() != 16) ? 36 : 40);
para[(8 * i) + 3] = nParameter[i] >> ((setstr.length() != 16) ? 28 : 32);
para[(8 * i) + 4] = nParameter[i] >> ((setstr.length() != 16) ? 20 : 24);
para[(8 * i) + 5] = nParameter[i] >> ((setstr.length() != 16) ? 12 : 16);
para[(8 * i) + 6] = nParameter[i] >> ((setstr.length() != 16) ? 4 : 8);;
para[(8 * i) + 7] = nParameter[i] & ((setstr.length() != 16) ? 0x0F : 0xFF);
break;
case 13: case 14:
para[(8 * i) + 0] = nParameter[i] >> ((setstr.length() != 14) ? 44 : 48);
para[(8 * i) + 1] = nParameter[i] >> ((setstr.length() != 14) ? 36 : 40);
para[(8 * i) + 2] = nParameter[i] >> ((setstr.length() != 14) ? 28 : 32);
para[(8 * i) + 3] = nParameter[i] >> ((setstr.length() != 14) ? 20 : 24);
para[(8 * i) + 4] = nParameter[i] >> ((setstr.length() != 14) ? 12 : 16);
para[(8 * i) + 5] = nParameter[i] >> ((setstr.length() != 14) ? 4 : 8);
para[(8 * i) + 6] = nParameter[i] & ((setstr.length() != 14) ? 0x0F : 0xFF);
break;
case 11: case 12:
para[(8 * i) + 0] = nParameter[i] >> ((setstr.length() != 12) ? 36 : 40);
para[(8 * i) + 1] = nParameter[i] >> ((setstr.length() != 12) ? 28 : 32);
para[(8 * i) + 2] = nParameter[i] >> ((setstr.length() != 12) ? 20 : 24);
para[(8 * i) + 3] = nParameter[i] >> ((setstr.length() != 12) ? 12 : 16);
para[(8 * i) + 4] = nParameter[i] >> ((setstr.length() != 12) ? 4 : 8);
para[(8 * i) + 5] = nParameter[i] & ((setstr.length() != 12) ? 0x0F : 0xFF);
break;
case 9: case 10:
para[(8 * i) + 0] = nParameter[i] >> ((setstr.length() != 10) ? 28 : 32);
para[(8 * i) + 1] = nParameter[i] >> ((setstr.length() != 10) ? 20 : 24);
para[(8 * i) + 2] = nParameter[i] >> ((setstr.length() != 10) ? 12 : 16);
para[(8 * i) + 3] = nParameter[i] >> ((setstr.length() != 10) ? 4 : 8);
para[(8 * i) + 4] = nParameter[i] & ((setstr.length() != 10) ? 0x0F : 0xFF);
break;
case 7: case 8:
para[(8 * i) + 0] = nParameter[i] >> ((setstr.length() != 8) ? 20 : 24);
para[(8 * i) + 1] = nParameter[i] >> ((setstr.length() != 8) ? 12 : 16);
para[(8 * i) + 2] = nParameter[i] >> ((setstr.length() != 8) ? 4 : 8);
para[(8 * i) + 3] = nParameter[i] & ((setstr.length() != 8) ? 0x0F : 0xFF);
break;
case 5: case 6:
para[(8 * i) + 0] = nParameter[i] >> ((setstr.length() != 6) ? 12 : 16);
para[(8 * i) + 1] = nParameter[i] >> ((setstr.length() != 6) ? 4 : 8);
para[(8 * i) + 2] = nParameter[i] & ((setstr.length() != 6) ? 0x0F : 0xFF);
break;
case 3: case 4:
para[(8 * i) + 0] = nParameter[i] >> ((setstr.length() != 4) ? 4 : 8);
para[(8 * i) + 1] = nParameter[i] & ((setstr.length() != 4) ? 0x0F : 0xFF);
break;
case 1: case 2:
para[(8 * i) + 0] = (setstr.length() == 1) ? nParameter[i] & 0x0F : nParameter[i];
break;
default:
break;
}
}
else
{
break;
}
bitoffset += 16;
}
}
int main()
{
try
{
boost::asio::io_service io_service;
tcp::resolver resolver(io_service);
auto endpoint_iterator = resolver.resolve({ "127.0.0.1", "8080" });
chat_client c(io_service, endpoint_iterator);
std::thread t([&io_service]() { io_service.run(); });
char line[chat_message::max_body_length + 1];
while (std::cin.getline(line, chat_message::max_body_length + 1))
{
chat_message msg;
msg.body_length(std::strlen(line));
std::memcpy(msg.body(), line, msg.body_length());
msg.encode_header();
c.write(msg);
}
c.close();
t.join();
}
catch (std::exception& e)
{
std::cerr << "Exception: " << e.what() << "\n";
}
return 0;
}