标签:
用winsocket时,send(),recv()过程中有时由于网络状况等原因,收发不能预期进行,可以设置收发时限:
int nNetTimeout = 1000; //1秒
//发送时限
setsockopt( socket, SOL_SOCKET, SO_SNDTIMEO, ( char * )&nNetTimeout, sizeof( int ) );
//接收时限
setsockopt( socket, SOL_SOCKET, SO_RCVTIMEO, ( char * )&nNetTimeout, sizeof( int ) );
fd_set rfd; //描述符集 这个将测试连接是否可用
struct timeval timeout; //时间结构体
FD_ZERO($rfd);//先清空一个描述符集
timeout.tv_sec = 60;//秒
timeout.tv_usec = 0;//一百万分之一秒,微秒
u_long ul=1;//代表非阻塞
ioctlsocket(socket,FIONBIO,$ul);//设置为非阻塞连接
SOCKADDR_IN addrSelf;//本地地址
addrSelf.sin_addr.s_addr = inet_addr("192.168.1.110");//指定网卡的地址
addrSelf.sin_family = AF_INET;
addrSelf.sin_port = htons(20000);//本地端口
if( -1 == bind(sockClient[i],(SOCKADDR*)&addrSelf,sizeof(SOCKADDR)))//把网卡地址强行绑定到Soket
{
绑定成功
}
转载请注明原连接www.cnblogs.com/gaoteng/p/3767967.html 雪狼的个人博客
标签:
原文地址:http://www.cnblogs.com/zhaoxinshanwei/p/4239992.html