#if _QT_SOCKET_
p_echo_socket = new QUdpSocket(this);
p_echo_socket->setSocketOption(QAbstractSocket::ReceiveBufferSizeSocketOption, 4*1024*1024);
if(!p_echo_socket->bind(DRY_ECHO_NET_PORT))
{
qDebug()<<"BIND failed for receiving echo port.";
}
#endif
#if _WIN_SOCKET_ // for windows OS
sockVersion = MAKEWORD(2,2);
if(WSAStartup(sockVersion, &wsaData) != 0)
{
printf("winsock initialization FAILED.");
}
echo_socket_WIN = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
if(echo_socket_WIN == INVALID_SOCKET)
{
printf("winsocket error !");
}
addr_WIN.sin_family = AF_INET;
addr_WIN.sin_port = htons(DRY_ECHO_NET_PORT);
addr_WIN.sin_addr.S_un.S_addr = INADDR_ANY;
if(bind(echo_socket_WIN, (sockaddr *)&addr_WIN, sizeof(addr_WIN)) == SOCKET_ERROR)
{
printf("bind error !");
closesocket(echo_socket_WIN);
}
int optVal = 0;
int optLen = sizeof(optVal);
optVal = 4*1024*1024;
setsockopt(echo_socket_WIN, SOL_SOCKET, SO_RCVBUF, (char*)&optVal, optLen);
#endif
#if _LINUX_SOCKET_
bzero(&echo_socket_LINUX,sizeof(echo_socket_LINUX));
echo_socket_LINUX.sin_family=AF_INET;
echo_socket_LINUX.sin_addr.s_addr=htonl(INADDR_ANY);
echo_socket_LINUX.sin_port=htons(DRY_ECHO_NET_PORT);
socket_len=sizeof(echo_socket_LINUX);
socket_descriptor=socket(AF_INET,SOCK_DGRAM,0);
bind(socket_descriptor,(struct sockaddr *)&echo_socket_LINUX,sizeof(echo_socket_LINUX));
int buffer_size_LINUX=0;
socklen_t optlen_LINUX;
optlen_LINUX = sizeof(buffer_size_LINUX);
getsockopt(socket_descriptor,SOL_SOCKET,SO_RCVBUF,&buffer_size_LINUX,&optlen_LINUX);
buffer_size_LINUX = 4*1024*1024;
if(setsockopt(socket_descriptor, SOL_SOCKET, SO_RCVBUF, &buffer_size_LINUX, optlen_LINUX) < 0)
{
qDebug()<<"set recv buffer size FAILED.";
}
getsockopt(socket_descriptor,SOL_SOCKET,SO_RCVBUF,&buffer_size_LINUX,&optlen_LINUX);
#endif