¿La programación de sockets puede cambiar el tamaño del búfer en el entorno Windows?
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
}