Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo configurar la aceptación y recepción con y sin bloqueo en programas de socket escritos usando API en VC

Cómo configurar la aceptación y recepción con y sin bloqueo en programas de socket escritos usando API en VC

Algunas personas que son nuevas en la programación pueden no tener muy claros los conceptos de bloqueo y no bloqueo. Bloquear significa que si no se cumplen las condiciones cuando se ejecuta una función, el programa siempre se detendrá en. esa función y no continuará ejecutándose. Sin bloqueo significa que la función continuará ejecutándose independientemente de si se cumplen las condiciones. Por ejemplo, durante el proceso de comunicación, al recibir datos, para el modo de bloqueo, el programa esperará hasta. los datos se reciben antes de ejecutarse hacia abajo, mientras que para el modo sin bloqueo, independientemente de si los datos se reciben o no, se ejecutará la función de recepción. Un programa relativamente completo generalmente utiliza un método sin bloqueo. si se utiliza un método de bloqueo, el programa se detendrá allí y esperará a que se cumplan las condiciones. En circunstancias normales, no hay problema, pero si desea detener un programa de bloqueo, surge un problema más problemático para SOCKET. Para programar usando el método API en VC, necesita usar la siguiente función para configurar el modo de bloqueo y el modo sin bloqueo: ioctlsocket(gListenSocket, FIONBIO, amp; tBlockMode //tBlockMode 0--block, 1--no block ioctlsocket(); gWorkSocket, FIONBIO, amp; tBlockMode); tenga en cuenta que al desarrollar programas del lado del servidor, esta configuración controlará la aceptación () del socket de escucha. Los modos de bloqueo y no bloqueo de la función también se pueden configurar en bloqueo y no. -Modos de bloqueo de la función recv del socket en funcionamiento. Si se establece el modo sin bloqueo, las funciones de aceptación y recepción se pueden ejecutar en modo de consulta.