windows SOCKET编程
? ?在WINDOWS的SOCKET編程中,可以設置SOCKET的發送和接收緩沖區大小為1M,這樣可以大大提升局域網的數據傳輸速度,默認為64K,最高可提高為5M/S,
實際代碼如下:
// 指定發送緩沖區大小
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;
}
// 接收確定緩沖區大小
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;
}
設置為非阻塞模式。
m_hTCPSock = ::socket(AF_INET,SOCK_STREAM,0);
unsigned long val = 1;
int nRe = ioctlsocket(m_hTCPSock, FIONBIO, &val);
SetSockBufSize(m_hTCPSock,m_dwMaxSockBufSize);
總結
以上是生活随笔為你收集整理的windows SOCKET编程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无线的关联过程
- 下一篇: RGB565与RGB555位图文件格式的