Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Pueden los subprocesos de Qt 2 compartir 1 socket para enviar y recibir datos respectivamente?

¿Pueden los subprocesos de Qt 2 compartir 1 socket para enviar y recibir datos respectivamente?

1: El identificador de socket es un número entero, asignado a la cola de identificadores del sistema (puede considerar este valor como una clave, una clave corresponde a una estructura de socket específica del sistema), el puntero no tiene significado. Por ejemplo, si crea un identificador de socket con un valor de 10, puede usar 10 para llamar directamente al socket en cualquier hilo. Este proceso de mapeo se completa internamente dentro de la API relacionada con Socket.

2. Subprocesos múltiples * * * Es posible utilizar un socket para manejar el envío y la recepción por separado. En muchos de estos ejemplos, algunos modelos de E/S de red tienen un subproceso responsable de recibir paquetes de datos y otro subproceso responsable de enviar paquetes de respuesta, pero no utilizan un socket para recibir varios subprocesos * * *, esto causará problemas.

3. Si desea compartir el identificador del socket con varios subprocesos * * *, simplemente pase el valor directamente. No pase referencias ni punteros, pero tenga en cuenta el manejo sincrónico del cierre del socket. Es mejor utilizar un objeto para manejar uniformemente la apertura y cierre, lectura y envío de cada socket. Todos los subprocesos utilizan este objeto para operar el socket, por lo que el juicio de validez del socket se maneja en el objeto. De lo contrario, si un subproceso cierra el socket, el subproceso secundario no sabrá que se producirá un error si continúa usando este número de identificador.