C++:矢量<string>到字符数组
C++: vector<string> to char array
我正在创建基本的ldap服务器作为学校项目。我将ldap消息作为vector<char> searchResDone;
发送到客户端(bindResponse、searchResEntry、searchResDone)
声明:
vector<char> searchResDone = {0x30, 0x0c, 0x02, 0x01, 0x02, 0x65, 0x07, 0x0a, 0x01, 0x00, 0x04, 0x00, 0x04, 0x00};
功能:
void sendResponse(int newsock, char response[], int msg_size){
int i = write(newsock,response,msg_size);// send message to the client
if (i == -1){ // check if data was successfully sent out
err(1,"write() failed.");
}
else if (i != msg_size){
err(1,"write(): buffer written partially");
}
}
呼叫:
sendResponse(newsock,reinterpret_cast<char*>(searchResDone.data()), searchResDone.size());
问题:
我正在分解来自客户端的searchRequest,然后将其分析并构建为
vector<string> response;
我不知道的是将响应发送为vector<string>
(vector<string> vcStr; vcStr[0] is for example 0x30
),而我无法将其转换为vector<char>
。。我只成功地将一个字符串从矢量转换为字符数组,即{0,x,3,0,…},但我需要一个十六进制数作为一个字符,正如您可以看到的那样。
我试着自己解决这个问题,但我没有主意。
更新:客户端正在通过邮件mail=my.mail@mail.com
询问用户名称我已经将名称、登录名、邮件按相同顺序(name[1],login[1],mail[1]
)解析为vector<string>
,所以如果我将收到mail=my.mail@mail.com
当循环通过vector<string> mail
时,我使用regex,然后我知道如果mail[1]
匹配,我可以从name[1]
中取名字。。然后我会把name[1]
转换成十六进制数字,我需要把它存储在一些数组{0x30, 0x0c,..}
中,把相同类型的数组组合在一起,然后把它作为一个大数组{0x30, 0x0c,..}
发送给客户端
到目前为止最简单的解决方案是在vector<string>
中的每个string
上重复调用sendResponse
。目的地是一个套接字,几乎可以肯定这是一个流(而不是消息)套接字。流套接字的另一端看不到您调用sendResponse
的频率;他们只是看到一个字节流。
- 指向指向字符数组的指针数组的指针
- 比较字符数组
- 如何使用Crypto++并为RSA返回可打印的字节/字符数组
- 使用无符号字符数组有效存储内存
- 错误:字符数组的初始值设定项太多
- 对字符数组中的元素执行逐位操作
- C++ 无法在字符数组中使用 for 循环打印字母模式
- 如何在 C++ 中从文件中读取字符数组(带有一些空格)
- C++ 传递二维字符数组
- 无法在 C++ 中输入字符数组
- 字符数组中的元素数
- 我的目标是编写一个程序来计算和存储字符串在字符数组中出现的位置
- 使用字符数组作为 Map 中的键
- C++:__aligned(__alignof__) 导致字符数组数据出现问题?
- 按顺序声明的字符数组重叠
- 在 C++ 中字符串的大小与字符数组的大小
- 寻找一种更好的方法来表示无符号字符数组
- 如何打印 2D 字符数组C++
- 从字符数组的元素中减去'a'是什么意思
- 我是否不正确地集中了这些字符数组?