Red de conocimiento informático - Material del sitio web - En la programación de redes VC SOCKET, ¿quién puede decirme la diferencia entre winsock.h winsock2.h afxsock.h wsock32.lib WS2_32.lib?

En la programación de redes VC SOCKET, ¿quién puede decirme la diferencia entre winsock.h winsock2.h afxsock.h wsock32.lib WS2_32.lib?

¿No es también una prueba para la programación de redes? Acabamos de aprobar el examen y acabamos de terminar de revisar

Lo entiendo un poco

En realidad, hay otra cosa que el cartel no mencionó, que es winsock.dll

El cartel menciona afxsock. No sé mucho sobre .h

Otros, son así

Todos los .h son archivos de encabezado, .lib es estático archivo de biblioteca, y .dll es un archivo de biblioteca dinámico

La razón por la cual el cartel puede usar esta programación es para pedir ayuda a estas personas que tienen una estricta división del trabajo.

En última instancia, la programación de socket es una programación que usa la red. Es diferente de los programas ordinarios.

Si el socket usa la red, debe usar un dispositivo de red (es decir. , una tarjeta de red).

Pero generalmente utilizamos lenguajes de alto nivel como c++ para escribir programas, que no operan el hardware subyacente.

Entonces necesitamos que alguien nos ayude a completar o bloquear las operaciones subyacentes.

El proceso general es que primero, la tarjeta de red será controlada por un controlador, lo que generalmente se realiza en el archivo .sys del sistema.

Luego se ejecutará el .dll En este momento, algunas operaciones de hardware siguen siendo las mismas, pero después de pasar la biblioteca de enlaces dinámicos, muchos detalles de bajo nivel comienzan a bloquearse. Aquí solo me refiero a algunas operaciones triviales. Los completa, pero de hecho, el .dll completado también es un producto semiacabado y el cartel no tiene otra opción. Se usa directamente para la programación.

Entonces .lib entra en juego. .lib toma los productos semiacabados procesados ​​por .dll y los encapsula en API. De esta manera, podemos llamar a las funciones de la tarjeta de red a través de la API. Por supuesto, esto no es suficiente. Después de todo, la API también es algo muy problemático y sus funciones no están lo suficientemente detalladas.

Así que hice .h. Estos archivos de encabezado se pueden abrir directamente para verlos. De hecho, contienen algunos comandos para llamar a la API, así como variables y estructuras relacionadas con la lógica empresarial.

Por ejemplo, una estructura como sockaddr_in se define en winsock.h. Es muy conveniente usarla para representar la IP y el puerto de un host, pero no es complicado, por supuesto, el autor puede hacerlo. También define su propia estructura, pero es precisamente porque estos archivos de encabezado lo ayudan a definir muchas estructuras variables comúnmente utilizadas en los negocios, para que pueda prestar más atención al programa en sí al programar.

La relación general se llama así.

Al escribir un programa, la inclusión de archivos de encabezado es indispensable y también se deben colocar bibliotecas estáticas en el programa. Por supuesto, se pueden agregar a través del entorno de desarrollo o incluirse directamente en el programa. Las bibliotecas de enlaces generalmente no se preocupan, vienen con ellas, pero a veces pueden estar dañadas, así que descárguelas en línea.

El winsock.h específico winsock2.h son las diferencias en las versiones. Al igual que QQ2009 y QQ2010 son QQ y pueden chatear, pero la versión se ha actualizado y muchos lugares pequeños han cambiado.