void sendMe(int port) { Network net; Socket *s; ANetwork::t_frame *frame; FILE *file; char buff[D_BUF]; int i = 0; int local, size = D_BUF; file = fopen(this->_fullpath.c_str(), "rb"); net.init(port, ANetwork::TCP_MODE); net.bind(); net.listen(2); s = (Socket*) net.select(); frame = (ANetwork::t_frame*) s->read(sizeof(Network::t_frame)); (void)frame; s->write(CreateRequest::create(1, 2, 3, IntToString(_size), true), sizeof(ANetwork::t_frame)); s->write(CreateRequest::create(1, 2, 3, basename(this->_fullpath), true), sizeof(ANetwork::t_frame)); while (i < this->_size) { local = fread(&buff[0], 1, size, file); i += local; s->write(buff, local); size = (_size - i > D_BUF) ? D_BUF : _size - i; } s->close(); net.close(); fclose(file); };
int main() { char *vars = getenv("QUERY_STRING"); ANetwork::t_frameMonit *frame = (ANetwork::t_frameMonit*) malloc(sizeof(ANetwork::t_frame)); Network net; std::cout << // "Content-type: application/json" "Access-Control-Allow-Origin: *" << std::endl << std::endl; if (!vars || sscanf(vars, "id=%d&data=%s", &(frame->idRequest), &(frame->data)) != 2) { std::cout << "{\"result\":\"Invalid parameters !\"}" << std::endl; return (-1); } try { net.init(9999, ANetwork::TCP_MODE); net.connect("127.0.0.1"); net.getSocket()->write((void*) frame, sizeof(ANetwork::t_frameMonit)); frame = (ANetwork::t_frameMonit*) net.read(sizeof(ANetwork::t_frameMonit)); net.close(); std::cout << "{\"result\":" << frame->data << "}" << std::endl; } catch (const std::exception &e) { std::cout << "{\"error\":\"" << e.what() << "\"}" << std::endl; } };