我想與函數發送binary data
send()
轉換 「二進制串」 到 「爲const char *」 的發送(Web服務器)
功能:
void ssend(const char* data){
send(socket_fd, data, strlen(data), 0);
}
bool readFile(const char* path){
std::ifstream ifile(path);
if(ifile){
if(!ifile.is_open()){
ErrorPage("403");
return true;
}
std::string sLine;
std::string Header = "HTTP/1.1 200 OK\nConnection: Keep-Alive\nKeep-Alive: timeout=5, max=100\nServer: BrcontainerSimpleServer/0.0.1 (Win32) (Whitout Compiler code)\n\n";
ssend(Header.c_str());
while(!ifile.eof()){
getline(ifile, sLine);
cout << "String: " << sLine << endl;
cout << "const char*: " << sLine.c_str() << endl;
ssend(sLine.c_str());
}
return true;
}
return false;
}
測試:
...
while (1) {
socket_fd = accept(listen_fd, (struct sockaddr *)&client_addr,&client_addr_length);
readFile(httpPath);
recv(socket_fd, request, 32768, 0);
closesocket(socket_fd);
}
...
轉換爲binary string
時使用.c_str()
,數據消失。如何解決這個問題呢?
如何發送binary data
與功能send()
?
謝謝,工作:)爲你+1 –