¿Cuál es la diferencia entre la programación de sockets en Windows y Linux?
1. Archivo de encabezado
winsock.h o winsock2.h en Windows
netinet/in.h en Linux (la mayoría de ellos están aquí), unistd. .h (la función de cierre está aquí), sys/socket.h (ya incluido en in.h, puede omitirlo)
2 Inicialización
WSAStartup es necesario en Windows. Inicie Ws2_32.lib y use #pragma comment(lib, "Ws2_32") para indicarle al compilador que vincule la biblioteca.
No es necesario en Linux
3. Cierre el socket
closesocket(...) en Windows
close(.. en Linux) .)
4. Escriba
SOCKET en Windows
int en Linux
5.
Getlasterror()/WSAGetLastError() en Windows
En Linux, las operaciones de socket fallidas devolverán -1; si se incluye errno.h, se establecerá la variable errno
6. Configure ioctlsocket() sin bloqueo en Windows
fcntl() en Linux, se requiere el archivo de encabezado fcntl.h
7. último de los parámetros de la función de envío
Generalmente está configurado en 0 en Windows
Es mejor configurarlo en MSG_NOSIGNAL en Linux. Si no está configurado, el programa puede cerrarse después de un. error de envío
8. Obtener el tiempo en milisegundos
GetTickCount() en Windows
gettimeofday() en Linux