Python - Proebla para entender el funcionamiento en c++ con qt

 
Vista:

Proebla para entender el funcionamiento en c++ con qt

Publicado por aldair martinez (1 intervención) el 24/09/2022 18:53:44
Hola buenos dias a todos veran resulta que estoy implementando un codigo en c++ con la ayuda de libreria qt que segun creo yo hace este funcionamiento pero no estoy seguro de si sea asi exactamente como funciona esto
El codigo es el siguiente
```
QTcpSocket *sck_broad=new QTcpSocket(parent);
quint16 dir_manager_port=80;
QString direccion_ip="192.168.100.X";
QNetworkAccessManager *access_manager= new QNetworkAccessManager(parent);
```
Lo que hace el codigo anterior segun yo es permitir enviar y recibir solicitudes de envio para obtener cualquier dato devuelto en respuesta a la solicitud correspondiente.
O lo que es lo mismo obtener informacion acerca de esa solictud como por ejemplo (la parte de la cabecera en este caso tcp para esa solicitud).
pero para ello segun la api necesitamos ver otros campos.
Mi pregunta en este apartado es si es realmente asi como funciona esto?
Ademas como puedo hacerle para obtener la direccion ip de mi maquina hay una libreria en qt que pueda hacer eso como si se tratase del comando ifconfig para linux?
```
access_manager->connectToHost(direccion_ip,dir_manager_port);
```
Segun yo el primer campo del meotodo connectToHost permite iniciar una conexion por el puerto especificado hacia un host destino
en el tercer parametro se puede pasar incluso un certificado ssl para validar la conexion
por lo que he leido este metodo es util para completar el apreton de manos conocido mejor como 3 way handshake antes de que se realice una solicitud http lo que da como resultado una respuesta con latencia mas baja
osea aceleramos el tiempo la conexion con el hsot destino acelerando la solicitud de envio
printf("Conectado a host ");
MI pregunta aqui es hace exatamente eso o estoy implemenntando este metodo mal ?
```
QUrl *url_discover=new QUrl(); url_discover->setHost(direccion_ip,QUrl::TolerantMode);
```
Aqui asignamos la direccion ip como url para poder enivarla como parametro a un QNextworkRequest
el segundo parametro intentara corregir los errres comunes en url este modo es util para analizar direcciones urls provenientes de fuentes que no cumplen estrictamente con los estandares
mi otra pregunta es a que se refiere con no cumplir esos estandares?
```
QNetworkRequest *request_discover=new QNetworkRequest(url_discover);
```
este metodo contructor contiene la informacion necesaria para enviar una solicitud a traves de la red osea la url y informacion auxiliar que se puede utilizar para modificar esa solicitud
pero a que se refiere con modificar ?
```
QWebSocket web_socket=new QWebSocket("",QWebSocketProtocol::Version4,parent);
```
QWebSocket segun san google y el rfc 6454 dice que lo que hace es poder enviar solicitudes y respuestas a traves del protocolo tcp simultanemente ya que antes de que existiera esto necesitaba el servidor crear conexiones nuevas en caso de que varios clientes se conectara a la vez lo que sobrecargaba el sevidor por otro lado el servidor tenia una sobrecarga por cada peticion http nueva para cada cliente de esa forma el cliente se via obligado a realizar conexiones nuevas por cada peticion y haces una seguimiento de ellas
mi pregunta es esto es enserio asi ?
y como puedo utilizar este metodo contructor?
```

QVariant *request_variant=new QVariant(web_socket.requestUrl());
```
aqui segun yo estoy obteniendo el url de ese websocket pero para ello como debo implementar correctamente el primer constructor y asignar el primer parametro? request_discover->setHeader(QNetworkRequest::UserAgentHeader,request_variant);
```
QNetworkReply *reply=access_manager->get(request_discover);
printf("La respuesta obtenidas s");
```
ahora la pregunta mas importante como puedo leer el contenido anterior o como utilizaria correctamente todo el codigo anterior
?
A dia de hoy sigue siendo un enigma para mi?? XD
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder