Red de conocimiento informático - Problemas con los teléfonos móviles - ¿La programación de sockets puede cambiar el tamaño del búfer en el entorno Windows?

¿La programación de sockets puede cambiar el tamaño del búfer en el entorno Windows?

// Este código es para cambiar el tamaño del búfer de recepción del sistema receptor. La cantidad de datos que se pueden recibir desde el otro extremo aumenta cada vez.

int nBufLen

int nOptlLen

nErrCode = getsockopt(s, SOL_SOCKET, SO_RCVBUF, (char*)nBufLen, & ampnOptlLen);

if (SOCKET_ERROR == nErrCode)

{

Regresar EXIT_FAILURE

}

nbu flen * = 10;

nErrCode = setsockopt(s, SOL_SOCKET, SO_RCVBUF, (char *) & amp; nBufLen, nOptlLen

if (SOCKET_ERROR == nErrCode)

{

Regresar EXIT _ FAILURE

}

//Compruebe si el sistema recibe correctamente el búfer de datos.

int uiNewRcvBuf

int nOptLen

getsockopt(s, SOL_SOCKET, SO_RCVBUF, (char*)uiNewRcvBuf, &noplan);

if (SOCKET _ ERROR = = nErrCode | | uiNewRcvBuf!= nBufLen)

{

Regresar EXIT _ FAILURE

}

// Esta sección es para cambiar el tamaño del búfer de envío para que podamos enviar datos más grandes a la vez.

Unsigned int uiOldSize = 0

Unsigned int uiNewSize = 0

int uiRcvBufLen = 0

if((( uiOldSize; = GetSysBuffSize(in socket))= = 0)

{

//No se puede obtener el tamaño del búfer.

Devuelve falso

}

uiRcvBufLen = sizeof(uiBuffSize);

if(SOCKET _ ERROR == setsockopt(en SOCKET, SOL_SOCKET, SO_SNDBUF, (char *)& uiBuffSize, uiRcvBufLen))

{

//El tamaño del búfer del sistema no se puede modificar.

Devuelve falso

}

//Comprueba si la configuración del búfer de envío del sistema es exitosa.

uiRcvBufLen = sizeof(uiNewSize);

if(SOCKET _ ERROR == getsockopt(en SOCKET, SOL_SOCKET, SO_SNDBUF, (char *)& uiNewSize & uiRcvBufLen) | | uiNewSize = = uiOldSize)

{

//El búfer de envío del sistema no se puede modificar.

Devuelve falso

}