Exemple #1
0
  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);
  };
Exemple #2
0
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;
  }
};