设置revc()的等待超时时间

 

#include <stdio.h>
#include <winsock2.h>


#define TCP

#pragma comment(lib,"ws2_32.lib")

int main( int argc ,char* argv[])
{
 WSAData wsaData;

 WSAStartup(WINSOCK_VERSION,&wsaData);
 DWORD begin,finish;

 struct timeval tv;
 tv.tv_sec = 5000;
 tv.tv_usec = 0;
 int optlen = sizeof(struct timeval);


 //
 SOCKET sock = socket(PF_INET,SOCK_STREAM,0);

 struct sockaddr_in to;
 int len = sizeof(struct sockaddr_in);
 memset(&to,0,len);

 to.sin_addr.s_addr = inet_addr("202.108.9.39");;
 to.sin_port = htons(80);
 to.sin_family = AF_INET;

 if ( connect(sock,(struct sockaddr*)&to,len) == SOCKET_ERROR )
 {
  closesocket(sock);
  return 0;
 }

 //设置超时值为tv
 if ( setsockopt(sock,SOL_SOCKET,SO_RCVTIMEO,(char*)&tv,optlen) ==
  SOCKET_ERROR)
 {
  closesocket(sock);
  return 0;
 }

 char buf[100];
 if ( recv(sock,buf,100,0) == SOCKET_ERROR )
 {
  printf("d");
 }

 return 0;
}

posted on 2006-12-11 16:39 永遇乐 阅读(1197) 评论(0)  编辑 收藏 引用 所属分类: 网络


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

导航

统计

常用链接

留言簿(6)

随笔分类

推荐Blog

友情链接

搜索

最新评论

阅读排行榜