设置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 永遇乐 阅读(1233) 评论(0)  编辑 收藏 引用 所属分类: 网络


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


<2024年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

导航

统计

常用链接

留言簿(6)

随笔分类

推荐Blog

友情链接

搜索

最新评论

阅读排行榜