windows SOCKET编程
? ?在WINDOWS的SOCKET編程中,可以設(shè)置SOCKET的發(fā)送和接收緩沖區(qū)大小為1M,這樣可以大大提升局域網(wǎng)的數(shù)據(jù)傳輸速度,默認(rèn)為64K,最高可提高為5M/S,
實(shí)際代碼如下:
// 指定發(fā)送緩沖區(qū)大小
int buf_size = dwMaxBufSize, buf_minsize = dwMaxBufSize / 2;
if (::setsockopt(s, SOL_SOCKET, SO_SNDBUF, (char *)&buf_size, sizeof(int)) != 0?
&& ::setsockopt(s, SOL_SOCKET, SO_SNDBUF, (char *)&buf_minsize, sizeof(int)) != 0)
{
printf("setsockopt(sendbuf)\r\n");
return S_FALSE;
}
// 接收確定緩沖區(qū)大小
buf_size = dwMaxBufSize, buf_minsize = dwMaxBufSize / 2;
if (::setsockopt(s, SOL_SOCKET, SO_RCVBUF, (char *)&buf_size, sizeof(int)) != 0?
&& ::setsockopt(s, SOL_SOCKET, SO_RCVBUF, (char *)&buf_minsize, sizeof(int)) != 0)
{
printf("setsockopt(recvbuf)\r\n");
return S_FALSE;
}
設(shè)置為非阻塞模式。
m_hTCPSock = ::socket(AF_INET,SOCK_STREAM,0);
unsigned long val = 1;
int nRe = ioctlsocket(m_hTCPSock, FIONBIO, &val);
SetSockBufSize(m_hTCPSock,m_dwMaxSockBufSize);
總結(jié)
以上是生活随笔為你收集整理的windows SOCKET编程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无线的关联过程
- 下一篇: 在Windows下编译FFmpeg详细说